比较两列我有两个表A
和B
其中表A
有一栏X
,表B
有列Y
。这些列包含帐号信息。我想检查A.X
列中的帐号信息是否存在于B.Y
。在两个不同的表
注意:列X
和Y
都可以有重复项,因为它们与复合主键类似。
我该如何解决这个问题?
比较两列我有两个表A
和B
其中表A
有一栏X
,表B
有列Y
。这些列包含帐号信息。我想检查A.X
列中的帐号信息是否存在于B.Y
。在两个不同的表
注意:列X
和Y
都可以有重复项,因为它们与复合主键类似。
我该如何解决这个问题?
这将为您提供表A
中的帐户信息,该信息也存在于表B
中。检查由相关子查询完成,该子查询检查A
中的每一行是否存在帐户信息B
。
SELECT DISTINCT
X
FROM
A
WHERE
EXISTS (
SELECT
*
FROM
B
WHERE
B.Y=A.X
);
您可以使用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)
选择不同的(X )
从A,B
WHERE A.X = B.Y
这将使你在一个不属于B中的帐号的列表:
SELECT X FROM (
SELECT DISTINCT X FROM A
) A
LEFT JOIN B ON Y = X
WHERE Y IS NULL