プロジェクトでまだキューに入れられていない、ユーザーに提供されたすべてのオファーを取得しようとしています。そのため、ユーザーの ID に基づいてテーブルからオファーを取得していますが、ユーザーがプロジェクトに既に追加したもの (テーブルOfferSuggestionHeader
に保存されているもの) を取得しないようにしています。Projects
次のクエリがあります。
SELECT DISTINCT ofh.OfferID, ofh.OfferTitle, ofh.OfferVendor, ofh.Savings,ofh.SavingsPercent
FROM OfferSuggestionHeader ofh
LEFT JOIN OfferSuggestionDetail osd
ON ofh.OfferID = osd.OfferID
LEFT JOIN Facilities f
ON osd.FacilityID = f.id
LEFT JOIN UserFacility uf
ON f.id = uf.fid
LEFT JOIN Users u
ON uf.uid = u.uid
LEFT JOIN Projects p
ON p.uid = u.uid
WHERE p.uid = '1'
AND ofh.OfferID <> ANY (SELECT offer_id FROM Projects WHERE uid = '1')
すべてのオファーが表示されます。削除するANY
と、サブクエリが返す結果が多すぎるというエラーが表示されます。
6つのオファーがあります。3 つはユーザー 1 によってキューに入れられています。オファー 1、4、または 5 は表示されません。
ポインタとヘルプをありがとう。