下記のようなSQL文でデータを抽出したいのですが上手くできません。
SELECT dtb_order.order_id FROM dtb_order LEFT JOIN dtb_skip_revision ON dtb_order.order_id = dtb_skip_revision.order_id WHERE NOT dtb_skip_revision.skip_month = '201502'
dtb_order
は注文情報、
dtb_skip_revision
は注文に関するオプション情報で、オプションが設定された場合のみdtb_order
の注文IDと紐付いたレコードが挿入されます。
dtb_order
に対して、dtb_skip_revision
を左外部結合しているため、
WHERE句を使わなければdtb_orderのデータは全件表示されます。
ただし下記のWHERE句を追加すると、
WHERE NOT dtb_skip_revision.skip_month = '201502'
dtb_order
の中でdtb_skip_revision
上にIDの存在するデータしか表示されません。
dtb_skip_revision.skip_month
が'201502'でないデータ全てを抽出したいのですが、
dtb_order
の中でdtb_skip_revision
にIDが存在しないデータも除外されてしまいます。
dtb_skip_revision.skip_month
の中で'201502'でないデータを除外しつつ、
残りのdtb_orderのデータを全て抽出するにはどのようにすればいいでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/02/23 16:49