Команды JOIN, INNER JOIN, LEFT JOIN, RIGHT JOIN используются для связывания таблиц по определенным полям связи.
Синтаксис
SELECT поля FROM имя_таблицы
LEFT JOIN имя_связанной_таблицы ON условие_связи
WHERE условие_выборки
Примеры
Все примеры будут по таблицам countries
и cities
, если не сказано иное.
Таблица countries
:
id айди |
name имя |
---|---|
1 | Беларусь |
2 | Россия |
3 | Украина |
Таблица cities
:
id айди |
name имя |
country_id айди страны |
---|---|---|
1 | Минск | 1 |
2 | Витебск | 1 |
3 | Москва | 2 |
4 | Питер | 2 |
5 | Лондон | 0 |
Пример . LEFT JOIN
В данном примере ...:
SELECT
cities.id as city_id, cities.name as city_name, cities.country_id as city_country_id,
countries.id as country_id, countries.name as country_name
FROM cities
LEFT JOIN countries ON countries.id=cities.country_id
Результат выполнения кода:
city_id айди города |
city_name название города |
city_country_id айди страны |
country_id айди страны |
country_name название страны |
---|---|---|---|---|
1 | Минск | 1 | 1 | Беларусь |
2 | Витебск | 1 | 1 | Беларусь |
3 | Москва | 2 | 2 | Россия |
4 | Питер | 2 | 2 | Россия |
5 | Лондон | 0 | NULL |
Пример . RIGHT JOIN
В данном примере ... Лондон не выберется, а Украина наоборот
SELECT
cities.id as city_id, cities.name as city_name, cities.country_id as city_country_id,
countries.id as country_id, countries.name as country_name
FROM cities
RIGHT JOIN countries ON countries.id=cities.country_id
Результат выполнения кода:
city_id айди города |
city_name название города |
city_country_id айди страны |
country_id айди страны |
country_name название страны |
---|---|---|---|---|
1 | Минск | 1 | 1 | Беларусь |
2 | Витебск | 1 | 1 | Беларусь |
3 | Москва | 2 | 2 | Россия |
4 | Питер | 2 | 2 | Россия |
NULL | NULL | NULL | 3 | Украина |