我正在尝试使用SQL查询输出候选表中的所有记录。它输出了所有记录,直到我添加了INNER JOINs来输出由noteID链接的音符表中的音符数据。
它现在只输出附有说明的记录......但我希望所有记录都带有或不带有记录。
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'],
);
}
如何解决这个问题,以便它显示候选表中有或没有注释的所有记录?
答案 0 :(得分:3)
INNER JOIN不包含具有NULL列的行(就像您要求的那样)。
您是否尝试过使用LEFT JOIN或RIGHT JOIN?他们会这样做,因为他们确实带来了NULL列。