Недавно я просматривал большой код SQL, в котором разделы Соединения были заполнены сложными подзапросами, и начал интересоваться, есть ли какая-либо польза от присоединения подзапроса с ограниченным выбором столбцов по сравнению с объединением всей таблицы и выбором только необходимых столбцов.
Чтобы проиллюстрировать это:
Допустим, у нас есть 2 таблицы: Table1, Table2
каждая со столбцами (PK, FK, a, b ,c, d, e, f)
. Я хочу присоединиться к Таблице 1 с Таблицей 2, но получить только несколько полей из Таблицы 2.
Что является более эффективным, каковы преимущества каждого из них?
SELECT
Table1.*,
Table2.a,
Table2.b
FROM Table1
LEFT JOIN Table2 ON Table1.PK = Table2.FK
ИЛИ
SELECT
Table1.*,
Table2sub.*
FROM Table1
LEFT JOIN (SELECT FK, a, b FROM Table2) AS Table2sub ON Table1.PK = Table2sub.FK