2016-11-19 82 views
1

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

注意:列XY都可以有重复项,因为它们与复合主键类似。

我该如何解决这个问题?

回答

0

这将为您提供表A中的帐户信息,该信息也存在于表B中。检查由相关子查询完成,该子查询检查A中的每一行是否存在帐户信息B

SELECT DISTINCT 
    X 
FROM 
    A 
WHERE 
    EXISTS (
     SELECT 
      * 
     FROM 
      B 
     WHERE 
      B.Y=A.X 
    ); 
0

您可以使用INNER JOIN,像这样:

SELECT * 
FROM table1 a 
INNER JOIN table2 b 
ON a.X = b.Y 

OR

,你可以去IF EXISTS,像这样:

SELECT * 
FROM table1 a 
WHERE EXISTS(
       SELECT 1 
       FROM table2 b 
       WHERE a.x=b.Y) 
0

选择不同的(X )
从A,B
WHERE A.X = B.Y

0

这将使你在一个不属于B中的帐号的列表:

SELECT X FROM (
    SELECT DISTINCT X FROM A 
) A 
LEFT JOIN B ON Y = X 
WHERE Y IS NULL