Ответ
Связи между таблицами в JOIN задаются в условии ON (или USING), где указывается, какие столбцы из разных таблиц должны быть равны. Обычно это сравнение внешнего ключа (foreign key) одной таблицы с первичным ключом (primary key) другой.
Синтаксис и пример:
SELECT o.order_id, c.customer_name, o.order_date
FROM orders o
INNER JOIN customers c ON o.customer_id = c.customer_id;
Ключевые моменты:
- Условие
ON— определяет логику связи. Можно использовать любые операторы сравнения (=,<,>,BETWEEN), но чаще всего это равенство по ключам. - Типы JOIN:
INNER JOIN— только совпадающие строки.LEFT JOIN— все строки из левой таблицы + совпадения справа.RIGHT JOIN/FULL JOIN— аналогично, но для правой или обеих таблиц.
- Производительность: Для ускорения
JOINстолбцы, участвующие в условии, должны быть проиндексированы.
Краткая форма с USING: Если имена связующих столбцов совпадают, можно использовать USING:
SELECT * FROM orders JOIN customers USING (customer_id);