У меня есть подзапрос, который будет делать LEFT JOIN
на трех разных таблицах. Затем у меня есть четвертая таблица, которая объединена с идентификатором, который будет содержать только одну из трех ранее включенных таблиц.Эффективное использование креста применяется?
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
когда я ограничиваю строки в таблице А, когда я WHERE A.SomeCondition = T.SomeCondition
. Эта таблица будет иметь значительно больше строк, чем другие таблицы.
Избавление от 'select *' из 4 таблиц поможет в производительности. –
Да, но это не вопрос. –
Выполняется ли это? Как вы накладываете 'Select *' на один столбец 'SomeCol'? – Brad