我的桌子上有一个产品列表,每个产品可以有一个或多个演示文稿。
例如,我的代码A1234可以显示为“厘米”,“米”,“单位”
PrdId PresId
A1234 | 'CM'
A1234 | 'MT'
A1234 | 'UN'
而且,每个演示文稿都有可能具有不同的属性
示例
PrdId PresId ForSales ForReplacement
A1234 | 'CM' | N | S
A1234 | 'MT' | N | N
A1234 | 'UN' | S | N
因此,我想进行查询以检查是否有确定的代码,例如没有检查“销售”属性。 只有一个演示文稿可以选中“用于销售”,但是可以存在许多演示文稿而不必具有此选中项。
有人可以建议我怎么做吗?
因为如果我创建一个查询,其中按产品过滤属性“用于销售”的值为N,则我不验证该属性不存在,我只是以该演示文稿不适用的条件为条件出售。
答案 0 :(得分:0)
我认为您正在检查它是否不出售或不存在。如果是这样,并假设您有两个表product
和attribute
select p.*
from product p
left join attribute a on a.PrdId=p.PrdId and a.PresId=p.PresId
where isnull(a.ForSales,'N')='N'
,或者如果要获取所有产品和“销售”列:
select p.*, isnull(a.ForSales,'N') as ForSales, isnull(a.ForReplacement,'N') as ForReplacement
from product p
left join attribute a on a.PrdId=p.PrdId and a.PresId=p.PresId