Статья Автор: Деникина Н.В., Деникин А.В.

III. JOIN - соединяем две таблицы

Зачем нужен JOIN?

В прошлом уроке мы нашли planet_id = 9, но не знаем название. Название лежит в другой таблице! JOIN «склеивает» строки из двух таблиц по совпадающему ключу.

Шаблон:
SELECT ...
FROM таблица_A
  JOIN таблица_B ON A.ключ = B.ключ;
Думай: «для каждой строки из A — найди подходящую строку в B».

Как это работает визуально

Соединяем planets и prices по planets.id = prices.planet_id:

planets
id name
1 Раалито
2 Кентари
3 Нова
prices (фрагмент)
planet_id product_type buy_price
1 1 10
1 2 25
2 1 12

Строки с id=1 и planet_id=1 «склеиваются» → в результате видим и название «Раалито», и цены.


Пример

SELECT planets.name, prices.buy_price
FROM planets
  JOIN prices ON planets.id = prices.planet_id
WHERE prices.product_type = 1;

Выведет название каждой планеты и цену покупки Продовольствия на ней.

Когда столбцы называются одинаково (например, name есть и в stars, и в planets), пиши таблица.столбец, чтобы SQL понял, откуда брать.
Печать