2014-09-30 53 views
0

我想使用SQL查詢輸出我候選人表中的所有記錄。它輸出所有的記錄,直到我添加了INNER JOINs,也從由noteID鏈接的註釋表中輸出註釋數據。爲什麼MySQL查詢會在我希望顯示所有記錄時省略記錄?

它現在只輸出有附註的記錄......但是我希望所有帶有或沒有附註的記錄輸出。

try { 
    $sql = 'SELECT candidate.Firstname, candidate.Lastname, candID, candidate.Email, 
       date, userID, note, noteID, username 
    FROM candidate INNER JOIN note ON LastNoteID=noteID INNER JOIN user ON userID=id'; 
    $result = $pdo->query($sql); 
} 
catch (PDOException $e) { 
    $error = 'Error fetching candidates: ' . $e->getMessage(); 
    include $errorpage; 
    exit(); 
} 
while ($row = $result->fetch()) { 
    $cands[] = array(
     'id' => $row['candID'], 
     'firstname' => $row['Firstname'], 
     'lastname' => $row['Lastname'], 
     'email' => $row['Email'], 
     'noteusername' => $row['username'], 
     'notedate' => $row['date'], 

    ); 
} 

我該如何解決這個問題,所以它顯示候選表中的所有記錄有或沒有註釋?

回答

3

INNER JOIN不包括已獲得NULL列的行(就像您請求的那樣)。

您是否嘗試過使用LEFT JOIN或RIGHT JOIN?他們會做的伎倆,因爲他們帶NULL列。

+1

是,OP。嘗試這個! – 2014-09-30 16:39:45

+0

真棒,它的作品謝謝! – dlofrodloh 2014-09-30 16:40:48

+0

不要忘記添加它作爲正確的答案。 – 2014-09-30 17:12:08