我有一個包含許多子查詢的查詢,它正在減慢它的速度。許多子查詢是相同的記錄但不同的欄位。我想知道是否有辦法查詢該記錄一次而不是四次。
例如:
select
field1 as (select field1 from people where company = g.company),
field2 as (select field2 from people where company = g.company),
field3 as (select field3 from people where company = g.company),
field4 as (select field4 from people where company = g.company)
from peopleGroup g
uj5u.com熱心網友回復:
SELECT 子句中的子查詢有其用途,但它通常是解決問題的一個例外。相反,正確的方法是在 FROM 子句中正確連接兩個表:
SELECT people.field1, people.field2, people.field3, people.field4
FROM peopleGroup g
LEFT OUTER JOIN people
ON g.company = people.company
uj5u.com熱心網友回復:
如果您出于某種原因仍想進行子查詢(比如說 a TOP 1),那么您可以使用APPLY
select
p.field1,
p.field2,
p.field3,
p.field4
from peopleGroup g
outer apply (
select
p.field1,
p.field2,
p.field3,
p.field4
from people p
where p.company = g.company
) p;
OUTER APPLY模擬一個LEFT JOIN并CROSS APPLY模擬一個INNER JOIN
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/425350.html
上一篇:顯示字串中每個字符的ASCII碼
