INNER JOIN против LEFT JOIN
«Чем INNER JOIN отличается от LEFT JOIN?» – пожалуй, самый частый вопрос по SQL на собеседованиях. В этом уроке ты наконец соединишь две таблицы магазина: увидишь, как customer_id в заказе указывает на клиента, что возвращает каждый вид JOIN, почему Omer исчезает в одном случае и появляется с NULL в
INNER JOIN оставляет только пары, для которых нашлось совпадение. LEFT JOIN оставляет каждую строку левой таблицы и подставляет NULL там, где совпадения нет.
- Внешний ключ
- Столбец, значение которого является первичным ключом в другой таблице, например orders.customer_id, указывающий на customers.id.
- INNER JOIN
- Соединение, которое возвращает только те пары строк из обеих таблиц, что удовлетворяют условию ON.
- LEFT JOIN
- Соединение, которое возвращает каждую строку левой таблицы, а в столбцах правой таблицы ставит NULL, если совпадения нет.
- Условие ON
- Условие, которое решает, какие строки двух таблиц относятся друг к другу.