В качестве схематического примера у меня есть 3 таблицы, к которым я хочу присоединиться, A, B, C, где A-B соединяется посредством внешнего соединения, а B-C потенциально соединяется посредством внутреннего соединения. В этом созвездии мне нужно написать два внешних объединения, чтобы получить данные, если первое соединение не имеет совпадения A-B в строке:
SELECT [fields] FROM
A
LEFT OUTER JOIN
B ON [a.field]=[b.field]
LEFT OUTER JOIN
C ON [b.field]=[c.field]
Мне кажется, логично, что я должен написать второе утверждение как внешнее соединение. Однако мне любопытно, есть ли возможность установить скобки для области соединения, чтобы указать, что второе соединение должно использоваться только в том случае, если первое внутреннее соединение обнаружило совпадающие данные для A-B. Что-то вроде:
SELECT [fields] FROM
A
(LEFT OUTER JOIN
B ON [a.field]=[b.field]
INNER JOIN
C ON [b.field]=[c.field]
)
Я немного поиграл, но не нашел возможности установить брекеты. Единственный способ, который я нашел, чтобы заставить это работать - это подзапрос. Это единственный путь?