Зачем нужен 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 понял, откуда брать.