通过子查询去掉DISTINCT关键字

77 阅读1分钟

通过子查询去掉DISTINCT关键字

SELECT DISTINCT P.name, P.salary 
FROM Products P1, Products P2 
WHERE P1.id <> P2.id 
AND P1.salary = P2.salary

改造后:

SELECT P.name, P.salary 
FROM Products P 
WHERE P.id IN (SELECT P1.id 
                FROM Products P1, Products P2 
                WHERE P1.id <> P2.id 
                AND P1.salary = P2.salary)

使用子查询的主要优点是代码更清晰、更易于理解。当查询变得复杂时,子查询可以将逻辑划分为更小的、更易于管理的部分。然而,这并不一定意味着子查询的性能会更好。实际上,在某些情况下,使用DISTINCT可能更有效率。