Операции соединения 1. Виды оператора JOIN 1
1 Виды оператора JOIN Информационные технологии 2
1 Виды оператора JOIN Информационные технологии 3
1 Виды оператора JOIN INNER JOIN Возвращает пересечение двух множеств. В терминах таблиц, оно возвращает только записи из обеих таблиц, отвечающие указанному критерию. Запрос: какие люди, какие города посетили SELECT FROM where order by SELECT FROM order by a. name, b. name People a, city b, travel c a. id = c. id. People and b. id=c. id. City a. name c. name, b. name travel a inner join City b on a. id. City=b. id inner join people c on c. id=a. id. People c. name Информационные технологии а где Ольга и Кальяри? 4
1 Виды оператора JOIN LEFT JOIN Дает все запрошенные данные из таблицы в левой части JOIN плюс данные из правой таблицы, пересекающиеся с первой таблицей. Запрос: все люди, какие города посетили SELECT FROM order by a. name, c. name people a left join travel b on a. id=b. id. People left join city c on c. id=b. id. City a. name Информационные технологии 5
1 Виды оператора JOIN LEFT JOIN SELECT FROM order by a. name, isnull(c. name, '--') 'Город' people a left join travel b on a. id=b. id. People left join city c on c. id=b. id. City a. name Информационные технологии 6
1 Виды оператора JOIN RIGHT JOIN Дает все запрошенные данные из таблицы в левой части JOIN плюс данные из правой таблицы, пересекающиеся с первой таблицей. Запрос: все города, кто их посетил SELECT FROM order by isnull(a. name, '--') 'Имя', c. name people a inner join travel b on a. id=b. id. People right join city c on c. id=b. id. City a. name Информационные технологии 7
1 Виды оператора JOIN FULL JOIN Объединение двух множеств SELECT FROM order by a. name, c. name people a full join travel b on a. id=b. id. People full join city c on c. id=b. id. City a. name Информационные технологии 8
1 Виды оператора JOIN Вывести список городов с кол-вом посещений SELECT FROM c. name, b. id. People travel b right join city c on c. id=b. id. City order by c. name SELECT FROM c. name, b. id. People city c left join travel b on c. id=b. id. City order by c. name Информационные технологии 9
1 Виды оператора JOIN SELECT FROM c. name, b. id. People/b. id. People city c left join travel b on c. id=b. id. City order by c. name SELECT FROM c. name, isnull(b. id. People/b. id. People, 0) city c left join travel b on c. id=b. id. City order by c. name Информационные технологии 10
1 Виды оператора JOIN SELECT FROM c. name, sum(isnull(b. id. People/b. id. People, 0)) 'кол-во' city c left join travel b on c. id=b. id. City group by c. name order by c. name Информационные технологии 11
1 Виды оператора JOIN CROSS JOIN Декартово произведение таблиц SELECT FROM b. name, a. name city a, people b b. name, a. name city a cross join people b Информационные технологии 12