即使条件不正确,也会返回结果

时间:2014-09-08 23:07:56

标签: mysql sql left-join

最终查询:

SELECT b.id, a.T1 FROM (query1) AS a JOIN (query2) AS b ON a.id = b.id

query1和2在日期匹配时带来数字,但是当日期不匹配(query2 =空集)时另一个也失败,如果一个为空则我需要输入零

我尝试使用IF faild解决它,如果日期存在可以正常工作,但如果不返回空集。

SELECT 
admin,
       IF(COUNT(date)=NULL,0,SUM(1P)) AS 1P
FROM carga 
WHERE date ="2014-08-14" 
GROUP BY admin;

欢迎任何想法,谢谢

1 个答案:

答案 0 :(得分:0)

使用LEFT JOIN

SELECT b.id, a.T1
FROM (query1) AS a
LEFT JOIN (query2) AS b ON a.id = b.id

LEFT JOIN表示结果应包含第一个表中的所有行。 如果第二个表格中没有匹配项,则结果中的所有列(例如b.id)都将为NULL,但它仍会显示第一个表格中的列。

你可以使用RIGHT JOIN来反转第一和第二个表的角色。