如果找不到第二个表行,如何显示第一行,请参阅示例 谢谢
$result1 = mysql_query("
SELECT a.user_name
, a.date
, a.checkin
, o.checkout
FROM attend a
LEFT
JOIN attendout o
ON a.user_name = o.user_name
AND a.date = o.date
WHERE a.date BETWEEN '2015-06-01' AND '2015-06-09'
AND o.user_name = 'salman';
");
现在是这样的
username date checkin checkout
salman 2015-06-01 11:31:34 17:23:47
salman 2015-06-02 11:19:23 17:15:15
salman 2015-06-03 11:48:22 18:16:27
salman 2015-06-06 11:39:26 16:56:13
salman 2015-06-07 11:24:59 17:36:01
我想要这样
username date checkin checkout
salman 2015-06-01 11:31:34 17:23:47
salman 2015-06-02 11:19:23 17:15:15
salman 2015-06-03 11:48:22 18:16:27
salman 2015-06-06 11:39:26 16:56:13
salman 2015-06-07 11:24:59 17:36:01
salman 2015-06-08 12:24:59
salman 2015-06-09 10:24:59
因为有时结账行为空
最佳答案
将第二表上的条件从WHERE
移动到ON
:
SELECT a.user_name, a.date, a.checkin, o.checkout
FROM attend a LEFT JOIN
attendout o
ON a.user_name = o.user_name AND
a.date = o.date AND o.user_name = 'salman'
WHERE a.date BETWEEN '2015-06-01' AND '2015-06-09' ;
当您将条件放入 WHERE
子句时,您会将 LEFT JOIN
转换为 INNER JOIN
,因为 NULL
值被过滤掉。
关于php - 如果找不到第二个表行,如何显示第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31290585/