我正在尝试从名为 products 的表中提取产品,我还有一个名为 Product_ranges 的表。
products
--------
id
name
model
product_ranges
--------------
id
product_id
other_id
SELECT p.id
FROM products As p
LEFT JOIN product_ranges As pr ON (pr.product_id = p.id AND pr.other_id = 16)
这将选择所有产品,并且如果产品存在于其中,则也包括product_ranges表列,但如果它确实存在于该表中并且other_id不等于16,我不希望产品出现在返回的结果中,但是如果该产品根本不存在于其他表中,我仍希望它出现在结果中。
我确信我几年前就已经做过了,但想不出它的 SQL - 如果有人知道正确的查询,我将不胜感激,谢谢。
最佳答案
更新:
SELECT p.id
FROM products
LEFT JOIN product_ranges pr ON pr.product_id = p.id
WHERE (pr.product_id IS NULL OR pr.other_id = 16)
关于MySQL 查询 - 从 2 个表中选择,如果存在于其他检查字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19930889/