如果给定的字符串(ID)存在于两个表中,我想返回ID。如何轻松实现?我尝试了加入,但不是放任不管
SELECT t1.ACCOUNTNUM FROM table1 T1
JOIN table2 T2 ON T1.ACCOUNTNUM = T2.ITEMID
where t1.accountnum = '123'
我也尝试过发布here的答案,但是语法All在最新版本的mssql中不起作用。
答案 0 :(得分:1)
如果关系是一对一的,那么一个简单的INNER JOIN
就可以了:
SELECT T1.ID
FROM dbo.Table1 T1
JOIN dbo.Table2 T2 ON T1.ID = T2.ID;
或者,如果是一对多关系,则可以使用EXISTS
SELECT T1.ID
FROM dbo.Table1 t1 --Assumed this is the singleton table
WHERE EXISTS (SELECT 1
FROM dbo.Table2 T2 --Assumed this is the many table
WHERE T2.ID = T1.ID);
答案 1 :(得分:0)
假设两个表分别是A和B。它们都具有ID列,其类型为nvarchar(10)。然后,您可以尝试使用INNER JOIN来找出两个表是否具有相同的ID。
SELECT A.ID FROM
A INNER JOIN B
ON A.ID = B.ID
WHERE A.ID = '123'
如果您有多个表(两个以上),并且想检查这些表中的任何一个是否具有特定的ID,那么您应该在这些表上尝试UNION操作。然后检查UNION的结果是否具有该特定ID。
SELECT RESULT.ID ( SELECT ID FROM A
UNION
SELECT ID FROM B
UNION
SELECT ID FROM C
UNION
SELECT ID FROM D
UNION
SELECT ID FROM E ) RESULT
WHERE RESULT.ID = '123'