次の表を考えてみましょう:
リーリーt1
テーブルには 2022-02-01
の日付がありません。t2
テーブルには 2022-03-01
がありません。これら 2 つのテーブルを結合して次の結果を生成したいと考えています:
解決策は完全接続を使用することです:
リーリーこれで私が望む結果が得られます。ただし、where
ステートメントを使用すると、すべてが壊れます:
この結果が得られると予想していました:
リーリーしかし、次の結果が得られました:
リーリー何が問題なのかはわかっていますが、解決策が見つかりません。問題は、t1.date
> "whatever" によって t1
テーブル内の空の行がすべて除外されることです。この方法を試しましたが、うまくいきません:
を使用する必要があります
リーリー"NULL = NULL" は、NULL には値がないため false と評価されます。したがって、他の値と同じにすることはできません (別の NULL であっても)。正しい方法は、
を使用することです。is null
正しい結合クエリでは
リーリーt2.date > "2022-01-01"
を使用する必要があるようです。デモは https://dbfiddle.uk/reo8UanD でご覧いただけます。