下面的查询返回loginid表中同时具有ip2和bumps的行。
bumps表中的所有行都有ip2,但只有一些行有loginid。
如何使下面的查询返回所有行的ip2,并返回具有loginid的行的loginid?
$sqlStrend = "SELECT e.loginid, e.time, l.username, e.ip2 FROM bumps e JOIN login l ON e.loginid = l.loginid WHERE e.submissionid = '$submissionid' ORDER BY e.time DESC LIMIT $offset, $rowsperpage";
最佳答案
而不是INNER JOIN(由JOIN所暗示的),您只需要将其更改为LEFT JOIN,它返回左侧表上的所有行和相关的或 >相关表中的行不存在。
SELECT e.loginid, e.time, l.username, e.ip2 FROM bumps e LEFT JOIN login l ON e.loginid = l.loginid WHERE e.submissionid = '$submissionid' ORDER BY e.time DESC LIMIT $offset, $rowsperpage
回顾this excellent Wikipedia article或Jeff Atwood's Visual Explanation of Joins中不同的NULL类型。