加入两个表,数据匹配在一列中

时间:2016-04-13 18:53:34

标签: sql sql-server

出于某种原因,我很难掌握连接,而且这个连接应该非常简单,因为我对SQL有了解。

无论如何,我有2张桌子。我们将其称为TableA和TableB。 TableA中的一列是“ID”。 TableB仅由列“ID”组成。我想返回TableA中ID存在的TableA中的所有行。

我知道这应该很容易理解,但我的大脑今天不想工作。

2 个答案:

答案 0 :(得分:3)

您可以使用EXISTS

执行此操作
Select  A.*
From    TableA  A
Where   Exists
(
    Select  *
    From    TableB  B
    Where   A.Id = B.Id
)

如果您愿意,也可以使用JOIN,但根据您的数据,您可能希望将其与SELECT DISTINCT结合使用:

Select  Distinct A.*
From    TableA  A
Join    TableB  B   On  A.Id = B.Id

要记住的一件事是ID的{​​{1}}不一定与TableA的{​​{1}}相关。

答案 1 :(得分:2)

这应该有效

 SELECT B.ID 
 FROM TableA A 
 JOIN TableB B 
 ON (A.ID=B.ID)
 WHERE A.ID=B.ID