MySQL连接表,即使条件失败

时间:2019-06-17 21:50:37

标签: mysql

如果“时间”条件失败,我将如何联接两个表并显示“ 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

我认为这不是重复的,因为建议的答案会返回与查询相同的结果。

0 个答案:

没有答案