-1
所以我有一個子查詢,它將在三個不同的表上執行LEFT JOIN
。然後,我有一個第四個表,它加入了一個id,我之前加入的三個表中的其中一個將包含該表。交叉應用的有效使用?
SELECT
(
IIF
(
NOT EXISTS(
SELECT * FROM A
LEFT JOIN B ON
(A.Col1 = B.Col1)
LEFT JOIN C ON
(A.Col2 = C.Col2)
LEFT JOIN D ON
(A.Col3 = D.Col3)
LEFT JOIN E ON
(B.SomeID = E.SomeID)
OR
(C.SomeID = E.SomeID)
OR
(D.SomeID = E.SomeID)
WHERE A.SomeCondition = T.SomeCondition
1,
0
) AS SomeCol
FROM T
WHERE T.Col1 = (some condition)
我會在性能benifit如果我做了CROSS APPLY
當我限制對錶A中的行,當我做WHERE A.SomeCondition = T.SomeCondition
。這個表格將有更多的行,然後是其他表格。
從4個表中刪除'select *'將有助於提高性能。 –
是的,但這不是問題。 –
這是否運行?你如何將一個'Select *'輸入到一列,'SomeCol'中? – Brad