我有两个表,表A和表B。两个表都有“ Id”列。表B依赖于此“ Id”(外键)。所以我想检索B中不存在的行。
答案 0 :(得分:3)
您似乎想要:
select a.*
from tablea a
where not exists (select 1 from tableb b where b.id = a.id);
答案 1 :(得分:2)
这应该适用于所有SQL版本:
select t1.*
from TableA t1
left join TableB t2
on t1.id = t2.id
where t2.id is null
答案 2 :(得分:0)
创建表TableA ( ID INT, [名称] Varchar(500) ) 插入INTO TableA值(1,'詹姆斯') 插入INTO TableA值(2,'John') 将INTO插入TableA值(3,'Betty') 将INTO插入TableA值(4,“ Sherlin”)
创建表TableB ( TableBID INT, ID INT, 瓦尔沙项目(250) ) 插入INTO TableB值(1,1,'ABC') 插入INTO TableB值(2,1,'XYZ') 插入INTO TableB值(3,2,'ASD') 插入INTO TableB值(4,1,'VGF') 插入INTO TableB值(5、3,'ABC') 插入INTO TableB值(6、3,'XYZ') 插入INTO TableB值(7,2,'FGH')
选择*从表A 存在的地方(从表B中选择1 b b,其中b.id = a.id); 或
SELECT *从TABLEA中输入ID(从TableB中选择ID);
DROP TABLE TABLEA 删除表格表