0

我有这个查询:

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 日期的记录,并且该日期的总数与 type2 相同,因为 type1 为空。如何让 type1 为日期返回 null?

4

1 回答 1

1

使用 aRIGHT JOIN而不是 a LEFT JOIN(或者只是在查询中交换两个子选择)。

记住左连接和右连接之间区别的一个有用规则是,左连接包括其左侧的每一行,即使右侧没有匹配的行,而右连接相反,包括其右侧的每一行。

于 2012-12-28T01:29:59.497 回答