检查SQL中的另一列中是否存在列值

Hus*_*n.M 18 sql-server

我需要一个SQL查询来比较两个值并返回一个ID.

我有这张桌子:

ID  Calling_ID  Called_ID
1   27          10
2   15          20
3   80          90
4   90          88
5   60          30
6   88          40
7   15          60
8   30          40
9   27          95
10  40          30
Run Code Online (Sandbox Code Playgroud)

如何检查Calling_ID列中是否存在列中的每个值Called_ID,然后返回ID?以上数据将返回88,30,40.

小智 18

这应该工作:

SELECT ID FROM [TableName]
WHERE Calling_ID IN
(
SELECT Called_ID FROM [TableName]
)
Run Code Online (Sandbox Code Playgroud)

  • 请提供一种JOIN解决方案,而不是IN解决方案。以我的经验,对于初学者来说,认为IN方式是一种反模式,它可以帮助他们学习加入。 (2认同)