我在使用普通的旧 SQL 查询时遇到了一些问题(大多数时候使用 ORM 的缺点:))。
我有 2 张桌子,PRODUCTS
并且RULES
. 在表中RULES
,我为产品定义了规则。我想要的是编写一个查询来获取所有已定义规则的产品。
规则由两种方式定义:
- 您只能指定
RULE
一种产品(ProductID
有值,SectorID
为 NULL) - 您可以使用( is NULL)指定
RULE
多个产品SectorID
ProductID
结果需要包含具有规则 ( ) 的所有产品,以及在规则表 ( )product.ID - rule.ProductID
中的扇区中定义的所有产品。product.SectorID - rule.SectorID
此外,结果不能有重复的产品(由productId
inRULES
或 by定义的产品SectorID
)
例子:
产品
ID SectorID
1 1
2 1
3 1
4 2
5 3
6 3
规则
ID ProductID SectorID
1 1 NULL
4 NULL 1
5 6 NULL
预期结果
PRODUCTS with IDs : 1, 2, 3, 6