Sobes.tech
Junior — Middle

Εξηγήστε τις διαφορές μεταξύ των λειτουργιών INNER JOIN και LEFT JOIN σε SQL και την εφαρμογή τους σε ερωτήματα.

sobes.tech AI

Απάντηση από AI

INNER JOIN возвращает только те строки, у которых есть совпадения в обеих таблицах по условию соединения. Если совпадений нет, строка не попадет в результат.

LEFT JOIN (или LEFT OUTER JOIN) возвращает все строки из левой таблицы и соответствующие строки из правой таблицы. Если совпадений нет, в столбцах правой таблицы будут NULL.

Пример:

SELECT users.id, orders.id
FROM users
INNER JOIN orders ON users.id = orders.user_id;

Вернет только пользователей с заказами.

SELECT users.id, orders.id
FROM users
LEFT JOIN orders ON users.id = orders.user_id;

Вернет всех пользователей, включая тех, у кого нет заказов (в этом случае orders.id будет NULL).

Применение:

  • INNER JOIN — когда нужны только связанные данные.
  • LEFT JOIN — когда нужно сохранить все данные из левой таблицы и добавить связанные, если они есть.