我有这个问题:
Select
X.type1transsum, Y.type2transsum,
(X.type1transsum + Y.type2transsum),
X.`date`
From (
Select sum(trans) as type1transsum, `date`
from type1trans where shopcode = 1037
group by `date`
) X
Left join (
Select sum(trans) as type2transsum, `date`
from type2trans where shopcode = 1037
group by `date`
) Y on X.`date` = Y.`date`
type2trans
表包含每个日期的记录,而在type1trans
中,某些天没有记录(因为那些日子没有交易)。
对于type1trans中没有记录的日期,则没有显示type2日期的记录,并且该日期的总数与type1相同,因为type1为null。如何让type1为日期返回null?
答案 0 :(得分:1)
使用RIGHT JOIN
代替LEFT JOIN
(或者只是在查询中交换两个子选项)。
记住difference between left and right joins的一个有用规则是左连接包含 left 侧的每一行,即使右侧没有匹配的行,而右连接则相反,包括右侧侧的每一行。