Kie*_*ith 5 sql sql-server sql-server-2008
我有两个表连接,以便我可以比较一个字段并从一个表中提取记录,其中被比较的字段不在两个表中:
Table A
---------
Comp Val
111 327
112 234
113 265
114 865
Table B
-----------
Comp2 Val2
111 7676
112 5678
Run Code Online (Sandbox Code Playgroud)
所以我正在做的是在Comp-Comp2上连接两个表,然后我希望从表A中选择表B中不存在corrssponding Comp的所有值.在这种情况下,查询应该导致:
Result
---------
Comp Val
113 265
114 865
Run Code Online (Sandbox Code Playgroud)
这是查询:
select * into Result from TableA
inner join TableB
on (TableB.Comp2 = TableA.Comp)
where TableB.Comp2 <> TableA.Comp
Run Code Online (Sandbox Code Playgroud)
问题是,它从两个表中提取值.有没有办法单独从TableA中选择值而不明确指定字段?
sst*_*tan 10
只需在前面*加上所需的表名,如下所示:
select TableA.* into Result from TableA
inner join TableB
on (TableB.Comp2 = TableA.Comp)
where TableB.Comp2 <> TableA.Comp
Run Code Online (Sandbox Code Playgroud)
我想你想要这个,但是:
select *
from TableA a
where
not exists (select b.Comp2 from TableB b where a.Comp1 = b.Comp2)
Run Code Online (Sandbox Code Playgroud)
这将找到A中B中不存在的所有记录.