下記のような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