获取查询结果行是否包含SELECT字段

时间:2012-06-19 01:48:49

标签: php mysql

下面的查询会返回loginid表中同时包含ip2bumps的行。

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";

2 个答案:

答案 0 :(得分:3)

而不是INNER JOIN(隐含JOIN),您只需要将其更改为LEFT JOIN,它会返回左侧表格中的所有行以及相关的{或{ {1}}相关表中的行不存在。

NULL

查看this excellent Wikipedia articleJeff Atwood's Visual Explanation of Joins中的不同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 类型。

答案 1 :(得分:1)

你实际上大部分都在那里。要从bumps中获取所有行以及用于登录的行,您需要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";