我在这里有一个SQL查询:
鉴于:
$id = 4;
(用户ID)$date_now = date("Y-m-d");
我使用PHP
SELECT `u`.name,
`u`.email,
`ud`.id,
`ud`.in,
`ud`.out
FROM users u
JOIN dtr ud ON `ud`.id = '$id'
WHERE `ud`.entry_date = '$date_now' LIMIT 1
查询返回dtr.id = $id where dtr.entry_date = $date_now
存在时我想要的内容。
我的问题是,每当用户的dtr(在dtr表中找到$id
的用户)不存在时,查询返回零结果。 (根据我的查询,这是正确的。)
但我想要的是在用户的dtr不存在时查询users.name
和users.email
。
答案 0 :(得分:1)
正确的查询是使用LEFT JOIN
稍加修改:
SELECT `u`.name,
`u`.email,
`ud`.id,
`ud`.in,
`ud`.out
FROM users u
LEFT JOIN dtr ud ON `ud`.id = '$id' AND `ud`.entry_date = '$date_now'
WHERE `u`.id = '$id' LIMIT 1
Where子句无效,因为它首先为空。
感谢@Ruchish Parikh合作