Задание уровня JUNIOR (На понимание обработки NULL значений в джойнах)
Есть 2 таблицы tab1 со значениями (1, 2, 2, NULL, NULL) и tab2 со значениями (2, NULL)
Какой будет результат соединениях этих таблиц с помощью INNER JOIN, LEFT JOIN, FULL JOIN) ?
Ответ к заданию
INNER JOIN:
2 | 2
2 | 2
LEFT JOIN:
1 | NULL
2 | 2
2 | 2
NULL | NULL
NULL | NULL
FULL JOIN
1 | NULL
2 | 2
2 | 2
NULL | NULL
NULL | NULL
NULL | NULL
Решение задания с пояснением
-- Создание таблицы tab1
CREATE TABLE tab1 (col1 INT);
-- Вставка значений в tab1
INSERT INTO tab1 (col1) VALUES (1), (2), (2), (NULL), (NULL);
-- Создание таблицы tab2
CREATE TABLE tab2 (col2 INT);
-- Вставка значений в tab2
INSERT INTO tab2 (col2) VALUES (2), (NULL);
--Запускаем INNER JOIN
SELECT tab1.col1, tab2.col2
FROM tab1
FULL JOIN tab2 ON tab1.col1 = tab2.col2; --Запускаем LEFT JOIN SELECT tab1.col1, tab2.col2
FROM tab1
LEFT JOIN tab2 ON tab1.col1 = tab2.col2; --Запускаем FULL JOIN SELECT tab1.col1, tab2.col2
FROM tab1
FULL JOIN tab2 ON