下面的查询返回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 articleJeff Atwood's Visual Explanation of Joins中不同的NULL类型。

10-08 02:39