Команда ON
Команда ON используется совместно с операторами
JOIN для задания условия,
по которому строки из разных таблиц считаются связанными.
Условие обычно сравнивает значения столбцов
из левой и правой таблиц.
Синтаксис
SELECT column_list FROM table_name JOIN related_table ON join_condition
Таблицы для примеров
| id | name |
|---|---|
| 1 | Russia |
| 2 | Belarus |
| id | name | country_id |
|---|---|---|
| 1 | Moscow | 1 |
| 2 | Saint Petersburg | 1 |
| 3 | Minsk | 2 |
| 4 | Gomel | 2 |
Пример
Давайте свяжем таблицы стран и городов по идентификатору страны:
SELECT
cities.name AS city_name,
countries.name AS country_name
FROM cities
INNER JOIN countries
ON countries.id = cities.country_id
ORDER BY cities.id
Результат выполнения кода:
| city_name | country_name |
|---|---|
| Moscow | Russia |
| Saint Petersburg | Russia |
| Minsk | Belarus |
| Gomel | Belarus |
Пример
Давайте используем условие ON вместе с LEFT JOIN для сохранения всех строк из таблицы городов:
SELECT
cities.name AS city_name,
countries.name AS country_name
FROM cities
LEFT JOIN countries
ON countries.id = cities.country_id
ORDER BY cities.id
Результат выполнения кода:
| city_name | country_name |
|---|---|
| Moscow | Russia |
| Saint Petersburg | Russia |
| Minsk | Belarus |
| Gomel | Belarus |
Смотрите также
-
команду
JOIN,
которая соединяет строки из таблиц -
команду
INNER JOIN,
которая оставляет только совпадения -
команду
LEFT JOIN,
которая сохраняет все строки слева -
команду
USING,
которая соединяет по одноимённому столбцу