如果“时间”条件失败,我将如何联接两个表并显示“ 0”值。
此查询向我显示了表A和表B中的所有行:
SELECT A.`idstolovi`, A.`konobar`,A.`broj_stola`, IFNULL(sum(b.got + b.kar + b.zir + b.ost),0) as suma, IFNULL(min(merged),0) as merged
FROM `stolovi` AS A
LEFT JOIN `dok_zag_d` AS B
ON B.`stol` = A.`broj_stola` group by idstolovi;
但是,如果我包含“ where”子句,它只会显示(当然)满足where子句条件的值:
SELECT A.`idstolovi`, A.`konobar`,A.`broj_stola`, IFNULL(sum(b.got + b.kar + b.zir + b.ost),0) as suma, IFNULL(min(merged),0) as merged
FROM `stolovi` AS A
LEFT JOIN `dok_zag_d` AS B
ON B.`stol` = A.`broj_stola` WHERE b.merged = 0 group by idstolovi
但是,问题是,我需要我的查询显示表A和表B中的所有行,但对于与where子句匹配的行和不与之匹配的行仅显示“ suma”,我希望查询返回要么是“ 0”,要么是“ NULL”。
这是第一个查询的返回:
1 11 1 49.50 1
2 0 2 0.00 0
3 0 3 0.00 0
4 0 4 0.00 0
5 0 5 0.00 0
这是第二个:
1 11 1 9.50 1
我希望它像这样:
1 11 1 9.50 1
2 0 2 0.00 0
3 0 3 0.00 0
4 0 4 0.00 0
5 0 5 0.00 0
我认为这不是重复的,因为建议的答案会返回与查询相同的结果。