有人可以帮我这个吗,
我有两张桌子
带有记录的表A
A | A1
A | A2
A | A3
B | B1
表B
A1 | x
A2 | y
我想检索TableB中没有任何相应值的记录。基本上,我想输出如下......
结果:
B | B1
如何编写查询?
谢谢。
答案 0 :(得分:0)
SELECT TableA.* FROM TableA LEFT OUTER JOIN TableB ON TableB.Field1 = TableA.Field2 WHERE TableB.Field1 IS NULL
SELECT TableA.* FROM TableA WHERE NOT EXISTS ( SELECT * FROM TableB WHERE TableB.Field1 = Table1A.Field2 )
答案 1 :(得分:0)
SELECT *
FROM table_a
WHERE col1 NOT IN (SELECT table_a.col1
FROM table_a
JOIN
table_b
ON (table_b.col1 = table_a.col2))
使用this链接进行演示
答案 2 :(得分:0)
表格和样本数据的定义:
create table Tbl1 (col1 varchar(10), col2 varchar(10));
insert into Tbl1 values ('A','A1');
insert into Tbl1 values ('A','A2');
create table Tbl2 (col1 varchar(10), col2 varchar(10));
insert into Tbl2 values ('A1','y');
和返回所需结果的查询(适用于:MS SQL和MySql):
select * from Tbl1
where col2 not in (select col1 from Tbl2 where col1 is not null)
如果您对子查询中的where
子句感到困惑,这只是为了避免NULL
值,因为它们可能会引入意外(空)结果。