比较两个不同表中的两列

时间:2016-11-19 07:18:18

标签: sql

我有两个表AB,其中表A有一列X,表B有一列Y。这些列包含帐号信息。我想检查A.X中是否存在B.Y列中的帐号信息。

注意:列XY都可以重复,因为它们就像复合主键。

我该如何解决这个问题?

4 个答案:

答案 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