Contract
次のフィールドを持つ契約のテーブルがあるとします: ContractId
、ProductID
、ProductType
。同じの表には、ContractId
2つの可能性がありProductID
ます。すべてのテーブルには、 と の 2 つの可能性が設定されていProductType
ます。Type1
Type2
次のクエリを何らかの方法で実行する理由は何ですか?
方法 1:
select c1.ProductID, c2.ProductID
from Contract as c1 left join Contract as c2 on c1.ContractId=c2.ContractId
where c1.ProductType <>'Type2'
方法 2:
select c1.ProductID, c2.ProductID
from Contract as c1 left join Contract as c2 on c1.ContractId=c2.ContractId
where c1.ContractId not in (select ContractId from Contract where ProductType = 'Type2')
賢明なご回答ありがとうございます。