我有一个简单的SQL查询:
SELECT
columnA, columnB, columnC...
FROM
(SELECT
columnA, columnB, columnC...
FROM
SomeTable) Table1
WHERE NOT EXISTS
(SELECT
columnA
FROM
SomeOtherTable st
WHERE
st.columnB = Table1.columnB)
Run Code Online (Sandbox Code Playgroud)
任何人都可以给我一个建议如何重写此查询以获得更好的性能?我的意思是WHERE NOT EXISTS在表1中包含该子句.
你可以用这个:
select Table1.*
from (select * from SomeTable) Table1
left outer join SomeOtherTable sot
on Table1.columnB = sot.columnB
where sot.columnB is null;
Run Code Online (Sandbox Code Playgroud)
对于性能,columnB在两个表上都有索引很重要.