我有一个名为“offers”的表,其中包含列“offer_id”、“offer”和“hid”。 主键是“offer_id”。
我有另一个名为“dates”的表,其中包含“hid”、“date”、“offer_id”和其他一些列。 主键是“日期”和“隐藏”。 “offer_id”的相同值可以存在于多行中(或根本没有)。
我如何编写 mySQL 查询来查找存在于“offers”但不存在于“dates”中的 offer_id?
我试过了
SELECT offers.offer_id FROM offers JOIN dates ON offers.offer_id NOT IN dates
但这没有用。
最佳答案
对于较大的表,此变体将比 NOT IN
快很多:外部连接到 dates
然后过滤 where 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
关于mysql - 两张表的复杂 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15590684/