Я немного удивлен тем, что эти два запроса дают разные результаты:SQL Внутренние соединения внутри Внешних объединений; Вложение Alters Результаты
Первый запрос:
SELECT a.number, a.name , b.*
FROM Atable a
LEFT OUTER JOIN Btable b
JOIN Ctable c ON c.number = b.number
ON b.number = a.number
ORDER BY a.number;
Второй запрос:
SELECT a.number, a.name , b.*
FROM Atable a
LEFT OUTER JOIN Btable b ON b.number = a.number
JOIN Ctable c ON c.number = b.number
ORDER BY a.number
Я ожидаю, что оба из них вернет результаты, которые делает первый запрос. Первый запрос возвращает каждую строку из TableA; однако неожиданно вторая строка возвращает результаты таблицы TableA, если они также существуют в TableC.
Почему соединение от C до B ограничивает таблицу A во втором запросе, но не в первом запросе?
Спасибо!
Это то же самое, что и почему (A + B) * C отличается от A + (B * C) – Serpiton