这可能很简单,但我发现很难绕过这个。
基本上,我有2张桌子,a和b。 'b'包含所有可能项目的列表,'a'包含链接到'b'中项目的行,以及父编号。即,要在a中显示行中的信息,我会这样做:
select a.field1, a.field2, b.description
from a inner join b on a.itemid = b.itemid
where a.parentnumber = @parentnumber
那种事情起作用。但我还想要一个下拉框来显示为该父帐户列出的不的所有项目。我该怎么做?
答案 0 :(得分:9)
SELECT *
FROM b
WHERE itemid NOT IN
(
SELECT itemid
FROM a
WHERE a.parentnumber = @parentnumber
)
答案 1 :(得分:1)
通过对此子查询使用左连接,您可以提供别名并使用此别名执行空检查。我更喜欢这种方法,因为包含子查询结果的别名可以在整个查询中使用。
SELECT *
FROM b
LEFT JOIN
(
SELECT itemid
FROM a
Where a.parentnumber = @parentnumber
) As Sub On b.itemid = sub.itemid
WHERE sub.itemid IS NULL