有人能帮我吗,我有两张table有记录的表格
A | A1 A | A2 A | A3 B | B1
表B
A1 | x A2 | y
我想检索表B中没有任何对应值的记录。基本上,我想输出如下。。。结果:
B | B1
如何编写查询?谢谢您。
7ajki6be1#
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))
使用此链接进行演示
uidvcgyl2#
表和样本数据的定义:
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 值,因为它们可能会引入意外的(空)结果。
where
NULL
xurqigkl3#
使用外部联接:
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 )
3条答案
按热度按时间7ajki6be1#
使用此链接进行演示
uidvcgyl2#
表和样本数据的定义:
以及返回所需结果的查询(适用于ms-sql和mysql):
如果你被
where
子句,这只是为了避免NULL
值,因为它们可能会引入意外的(空)结果。xurqigkl3#
使用外部联接:
使用存在: