我有两个表A
和B
,其中表A
有一列X
,表B
有一列Y
。这些列包含帐号信息。我想检查A.X
中是否存在B.Y
列中的帐号信息。
注意:列X
和Y
都可以重复,因为它们就像复合主键。
我该如何解决这个问题?
答案 0 :(得分:0)
这将为您提供表A
中同样存在于表B
中的帐户信息。检查由相关子查询完成,该子查询检查A
中的每一行是否存在B
中的帐户信息。
SELECT DISTINCT
X
FROM
A
WHERE
EXISTS (
SELECT
*
FROM
B
WHERE
B.Y=A.X
);
答案 1 :(得分:0)
您可以使用INNER JOIN
,如下所示:
SELECT *
FROM table1 a
INNER JOIN table2 b
ON a.X = b.Y
或
你可以去IF EXISTS
,就像这样:
SELECT *
FROM table1 a
WHERE EXISTS(
SELECT 1
FROM table2 b
WHERE a.x=b.Y )
答案 2 :(得分:0)
选择distinct(X)
来自A,B
在哪里A.X = B.Y
答案 3 :(得分:0)
这将为您提供A中不在B中的帐号列表:
SELECT X FROM (
SELECT DISTINCT X FROM A
) A
LEFT JOIN B ON Y = X
WHERE Y IS NULL