我想问一下,是否可以转换此查询:
SELECT * FROM A
WHERE A.id IN (
SELECT DISTINCT(B.id) FROM B
)
使用JOINS
(没有WHERE IN
子句)的SQL查询?
答案 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