Junior
112
questionbank
В чем разница между RIGHT JOIN, LEFT JOIN и INNER JOIN?
Ответ от нейросети
sobes.tech AI
- INNER JOIN: Возвращает строки, только если совпадающие значения существуют в обеих таблицах.
- LEFT JOIN: Возвращает все строки из левой таблицы и совпадающие строки из правой. Если совпадений нет, возвращаются
NULLзначения для столбцов из правой таблицы. - RIGHT JOIN: Возвращает все строки из правой таблицы и совпадающие строки из левой. Если совпадений нет, возвращаются
NULLзначения для столбцов из левой таблицы.
Пример на SQL:
-- Таблица users
CREATE TABLE users (
user_id INT PRIMARY KEY,
username VARCHAR(50)
);
INSERT INTO users (user_id, username) VALUES
(1, 'Alice'),
(2, 'Bob'),
(3, 'Charlie');
-- Таблица orders
CREATE TABLE orders (
order_id INT PRIMARY KEY,
user_id INT,
product VARCHAR(50)
);
INSERT INTO orders (order_id, user_id, product) VALUES
(101, 1, 'Laptop'),
(102, 2, 'Mouse'),
(103, 1, 'Keyboard');
-- INNER JOIN: Вернет Alice (Laptop, Keyboard) и Bob (Mouse)
SELECT u.username, o.product
FROM users u
INNER JOIN orders o ON u.user_id = o.user_id;
-- LEFT JOIN: Вернет Alice (Laptop, Keyboard), Bob (Mouse) и Charlie (NULL)
SELECT u.username, o.product
FROM users u
LEFT JOIN orders o ON u.user_id = o.user_id;
-- RIGHT JOIN: Вернет Alice (Laptop, Keyboard), Bob (Mouse)
-- (Если бы в orders были записи без user_id, они бы тоже вернулись)
SELECT u.username, o.product
FROM users u
RIGHT JOIN orders o ON u.user_id = o.user_id;