我有一个DropDownList,其中填充了表A的主键。表B使用表A主键作为外键。外键只能使用一次。
所以目前我的列表总是填充:1,2,3,4,5(表A中作为主要存在)。表B已经使用了密钥:1,2,3。当表B中已经存在密钥时,我需要它们不在下拉列表中填充。
我试图在SQL查询中声明,只填充表B中不存在的键。我正在尝试但不起作用的查询是:
SELECT Table_A.Grades_ID FROM Table_A INNER JOIN Table_B ON Table_A_ID = Table_B.Grades_ID WHERE Table_A.Grades_ID != Table_B.Grades_ID
如何让我的下拉列表不填充表B中已存在的键(数据)?
答案 0 :(得分:5)
只需调整SQL即可排除TableB中已存在的PKey值
SELECT Table_A.Grades_ID
FROM
Grades
LEFT JOIN Table_B ON Table_A_ID = Table_B.Grades_ID
WHERE Table_B.Grades_ID Is Null
或者,您可能希望使用“不在”
SELECT
Tables_A.Grades_ID
WHERE
Tables_A.Grades_ID not in (Select Grades_ID from Table_B)
答案 1 :(得分:0)
试试这个:
select table_a.grades_id
from table_a left outer join
on table_a.grades_id = table_b.grades_id
where table_b.<some other field> is null
答案 2 :(得分:0)
SELECT Grades_ID FROM Grades WHERE Grades_ID NOT IN (SELECT Grades_ID FROM Table_B)
答案 3 :(得分:0)
选择Table_A.Grades_ID 来自Table_A 其中Table_A.Grades_ID NOT IN(从Table_B中选择Grades_ID)