我的SQL Server查询速度很慢:
SELECT Style
FROM Storage
WHERE Style NOT IN (SELECT ValidStyle FROM ValidStyles)
此语法导致SELECT ValidStyle FROM ValidStyles
对父查询的每一行执行一次。我怎样才能重写这个以仅运行子查询一次?
答案 0 :(得分:6)
SELECT Style
FROM Storage s
WHERE NOT EXISTS(SELECT * FROM ValidStyles vs WHERE vs.ValidStyle=s.Style)
答案 1 :(得分:0)
我只是在这里猜一下,但这应该有用......
SELECT S.Style
FROM Storage S
LEFT OUTER JOIN ValidStyles vs on S.Style = VS.ValidStyle
WHERE vs.ValidStyle is null
答案 2 :(得分:0)
SELECT Style
FROM Storage S
LEFT JOIN ValidStyles VS
ON
S.Style = VS.ValidStyle
WHERE VS.ValidStyle IS NULL