1

「offer_id」、「offer」、「hid」列を持つ「offers」というテーブルが 1 つあります。主キーは「offer_id」です。

「hid」、「date」、「offer_id」などの列を持つ「dates」という別のテーブルがあります。主キーは「date」と「hid」です。"offer_id" の同じ値が多くの行に存在する (またはまったく存在しない) 場合があります。

「offers」には存在するが「dates」には存在しない offer_id を検索する mySQL クエリを作成するにはどうすればよいですか?

私は試した

SELECT offers.offer_id FROM offers JOIN dates ON offers.offer_id NOT IN dates

しかし、それはうまくいきませんでした。

4

2 に答える 2

3

NOT INより大きなテーブルの場合、このバリアントは、 : 外部結合してからnulldatesの場所をフィルター処理するよりもはるかに高速になります。dates.offer_id

SELECT offers.offer_id
FROM offers
LEFT OUTER JOIN dates ON offers.offer_id = dates.offer_id
WHERE dates.offer_id IS NULL
于 2013-03-23T18:55:54.650 に答える
2

これはあなたのために働くべきだと思います。

SELECT offers.offer_id FROM offers where offer_id NOT IN (select offer_id from dates)
于 2013-03-23T18:49:49.020 に答える