278просмотров
7.1%от подписчиков
16 марта 2026 г.
questionScore: 306
🤔 Как с помощью одного запроса можно выбрать данные из двух таблиц? Чтобы выбрать данные из двух таблиц в одном запросе, используется оператор JOIN. Например, INNER JOIN объединяет строки, где есть совпадения в обеих таблицах, а LEFT JOIN возвращает все строки из первой таблицы и соответствующие строки из второй, заполняя NULL там, где данных нет. 🚩Отличия между видами JOIN в SQL В SQL существует несколько видов операторов JOIN, которые позволяют объединять данные из двух или более таблиц на основе определенных условий. Основные типы JOIN включают INNER JOIN, LEFT JOIN, RIGHT JOIN, и каждый из них имеет свои особенности и использование. Рассмотрим их различия на примере двух таблиц: Таблица A:
id | name
-----------
1 | Alice
2 | Bob
3 | Charlie Таблица B:
id | city
-----------
1 | New York
3 | Los Angeles
4 | Chicago 🟠INNER JOIN
INNER JOIN возвращает только те строки, которые имеют совпадения в обеих таблицах. Если нет совпадающих строк, такие строки не включаются в результат.
SELECT A.id, A.name, B.city
FROM A
INNER JOIN B ON A.id = B.id; Результат:
id | name | city
------------------------
1 | Alice | New York
3 | Charlie | Los Angeles 🟠LEFT JOIN (или LEFT OUTER JOIN)
LEFT JOIN возвращает все строки из левой таблицы (A) и совпадающие строки из правой таблицы (B). Если совпадения не найдено, в результате будут строки из левой таблицы с NULL значениями для столбцов из правой таблицы.
SELECT A.id, A.name, B.city
FROM A
LEFT JOIN B ON A.id = B.id; Результат:
id | name | city
------------------------
1 | Alice | New York
2 | Bob | NULL
3 | Charlie | Los Angeles 🟠RIGHT JOIN (или RIGHT OUTER JOIN)
RIGHT JOIN возвращает все строки из правой таблицы (B) и совпадающие строки из левой таблицы (A). Если совпадения не найдено, в результате будут строки из правой таблицы с NULL значениями для столбцов из левой таблицы.
SELECT A.id, A.name, B.city
FROM A
RIGHT JOIN B ON A.id = B.id; Результат:
id | name | city
------------------------
1 | Alice | New York
3 | Charlie | Los Angeles
4 | NULL | Chicago 🟠FULL JOIN (или FULL OUTER JOIN)
FULL JOIN возвращает все строки, когда есть совпадение в одной из таблиц. Это объединение LEFT JOIN и RIGHT JOIN. Если совпадения не найдено, результат будет содержать NULL значения для столбцов из другой таблицы.
SELECT A.id, A.name, B.city
FROM A
FULL JOIN B ON A.id = B.id;
id | name | city
------------------------
1 | Alice | New York
2 | Bob | NULL
3 | Charlie | Los Angeles
4 | NULL | Chicago Ставь 👍 и забирай 📚 Базу знаний