Урок 6. Joins

Слайд 2

Слайд 3

CROSS JOIN = Cartesian product TABLE A CROSS JOIN TABLE B

CROSS JOIN = Cartesian product

TABLE A CROSS JOIN TABLE B
Возвращает все

пары строк из A и B
SELECT * FROM A CROSS JOIN B
=
SELECT * FROM A, B
Слайд 4

INNER JOIN = JOIN Возвращает только совпадения по двум таблицам по

INNER JOIN = JOIN

Возвращает только совпадения по двум таблицам по заданному

условию

SELECT * FROM A INNER JOIN B
ON condition

Также можно использовать предложение USING, которое выводит строки с равными значениями в указанных столбцах.
SELECT * FROM A
INNER JOIN B
USING (col1, col2)

Слайд 5

LEFT JOIN = LEFT OUTER JOIN Возвращает все строки из левой

LEFT JOIN = LEFT OUTER JOIN

Возвращает все строки из левой таблицы

и совпадения
из правой таблицы. Для недостающих данных вместо строк правой_таблицы вставляются NULL-значения.
SELECT d.name, d.index, s.id, s.name FROM department d LEFT OUTER JOIN student s ON s.index=d.index;
Слайд 6

RESULT. LEFT JOIN

RESULT. LEFT JOIN

Слайд 7

RIGHT JOIN = RIGHT OUTER JOIN Возвращает все строки из правой

RIGHT JOIN = RIGHT OUTER JOIN

Возвращает все строки из правой таблицы

и совпадения из левой таблицы.
SELECT d.name, d.index, s.id, s.name
FROM department d RIGHT JOIN student s
ON s.index=d.index;
Слайд 8

RESULT. RIGHT JOIN

RESULT. RIGHT JOIN

Слайд 9

FULL OUTER JOIN Возвращает все строки из двух таблиц SELECT d.name,

FULL OUTER JOIN

Возвращает все строки из двух таблиц
SELECT d.name, d.index, s.id, s.name
FROM

department d FULL OUTER JOIN student s ON s.index=d.index;