我有 3 张桌子:Products
, ProductProperties
, Properties
. 我需要获得所有没有“属性 B”的产品。表:
# Products # Join table # Properties
+----+-----------+ +------------+-------------+ +-------------+---------------+
| id | name | | product_id | property_id | | property_id | property_name |
+----+-----------+ +------------+-------------+ +-------------+---------------+
| 1 | Product 1 | | 1 | 1 | | 1 | Propeprty A |
| 2 | Product 2 | | 1 | 2 | | 2 | Propeprty B |
| 3 | Product 3 | | 2 | 1 | +-------------+---------------+
+----+-----------+ | 2 | 2 |
| 3 | 1 |
+------------+-------------+
在这种特殊情况下,我希望 Product 3 被退回。
是否可以在单个数据库查询中获得所有必需的产品?实现这一目标的最小查询是什么?
已编辑。带有子查询的查询被认为是bad。