1

下面的查询返回表中同时具有loginidip2的行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";
4

2 回答 2

3

而不是INNER JOIN(由 暗示JOIN),您只需将其更改为 a LEFT JOIN,这将返回左侧表上的所有行以及NULL相关表中的行或相关表中不存在的行。

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

查看这篇出色的 Wikipedia 文章Jeff Atwood 的联接的视觉解释中JOIN的不同类型。

于 2012-06-19T01:51:58.903 回答
1

你实际上是大部分的方式。要从凹凸中获取所有行和存在的登录行,您需要LEFT JOIN

$sqlStrend = "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";
于 2012-06-19T01:53:12.060 回答