2017-05-18 18 views
-1

私は2つのテーブルを持っています:1)order_noとそれに対応する詳細を格納しているorder_details 2)order_noとそれに対応する注文ステータス更新メールを格納するemail_details配送メールがある注文のリストを取得する方法送信されません?特別な条件でのSQL結合

enter image description here

+0

http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-をお読みください285557とその回答 –

+4

データモデルを最初に修正してください。 **は1つの列にカンマ区切りの値を格納しません**。 –

+0

アップロードされるのは仮説テーブルです。注文ごとに1つのアイテムしか保存しないとします。 –

答えて

2

私はあなたが送っdelivery_confirmationメールを持っていない注文のORDER_NOをしたいと仮定しています。それはあなたが、それは次のSQLクエリによって返される必要があるものである場合:

select od.order_no 
from order_details od 
left join email_details ed on od.order_no = ed.order_no and ed.sent_emails = 'delivery_confirmation' 
where ed.order_no is null; 
2

はそうのようなサブクエリを使用して行うことができます。

SELECT order_no, itemlist FROM order_details 
WHERE order_no NOT IN (SELECT order_no FROM email_details WHERE sent_mails = 'delivery_confirmation') 

はまた、カラム内のCSV形式でのアイテムのリストを格納するための悪い習慣です。リレーショナルデータベースの強みは、それを避けることです。