使用' WHERE IN(SELECT DISTINCT(id)FROM A)转换SQL查询'加入'加入'

时间:2015-11-11 14:57:03

标签: sql

我想问一下,是否可以转换此查询:

SELECT * FROM A
WHERE A.id IN (
    SELECT DISTINCT(B.id) FROM B
)

使用JOINS(没有WHERE IN子句)的SQL查询?

2 个答案:

答案 0 :(得分:1)

最正确的方法是:

SELECT A.*
FROM A JOIN
     (SELECT DISTINCT B.id
      FROM B
     ) B
     ON A.id = B.id;

通常也会使用:

SELECT DISTINCT A.*
FROM A JOIN
     B
     ON A.id = B.id;

但是,此版本会从A(如果有)中删除重复项,而原始查询则不会。

答案 1 :(得分:-1)

是的,你可以这样做,就像这样

SELECT DISTINCT A.*
FROM A
INNER JOIN B
ON A.id=B.id