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 の日付のレコードは表示されず、type1 が null であるため、その日付の合計は type2 と同じになります。type1 が日付に対して null を返すようにするにはどうすればよいですか?

4

1 に答える 1

1

a のRIGHT JOIN代わりに aを使用しますLEFT JOIN(または、クエリ内の 2 つのサブセレクトを入れ替えるだけです)。

左結合と右結合の違いを覚えておくと便利なルールは、左結合では右側に一致する行がない場合でも左側のすべての行が含まれ、逆に右側結合では右側のすべての行が含まれることです

于 2012-12-28T01:29:59.497 に答える