0

我正在尝试从名为 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 - 如果有人知道正确的查询,我将不胜感激,谢谢。

4

1 回答 1

1

更新:

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)
于 2013-11-12T13:52:28.827 回答