Повторение - Самосоединение
Часть раздела Основы путешествия по SQL на Coddy. Урок 47 из 72.
Задание
СложноДоступные таблицы и столбцы:
friends:id,name,friend_id
Для каждого человека в таблице друзей найдите все имеющиеся у него связи «друг друга». Связь «друг друга» возникает, когда человек A дружит с человеком B, который, в свою очередь, дружит с человеком C. Представьте эти связи в виде трёх столбцов:
- friend1: исходный человек
- friend2: его непосредственный друг
- friend3: друг его друга
Правила:
- Не включайте случаи, когда friend3 — тот же человек, что и friend1
- Отсортируйте результаты по имени friend1 в порядке убывания
Пример: если Alice дружит с Bob, а Bob дружит с Carol, то Alice-Bob-Carol будет допустимой связью «друг друга».
Попробуйте сами
-- Присоедините таблицу к самой себе дважды, чтобы одна строка содержала цепочку из трёх человек
SELECT ____ AS friend1, ____ AS friend2, ____ AS friend3
FROM friends f1
JOIN friends f2 ON ____
JOIN friends f3 ON ____
-- Отбросьте цепочки, которые возвращаются к человеку, с которого они начались
WHERE ____
ORDER BY ____ DESC;Все уроки раздела Основы
4Больше ключевых слов
Ключевое слово INКлючевое слово BETWEENКлючевое слово LIKEКлючевое слово ASПовторение - Модели мобильных телефонов2Условия
Основы условийКлючевое слово ANDКлючевое слово ORКлючевое слово NOTКомбинирование нескольких условийСкобкиБулевы значения5Арифметические операции
Математические операторыМатематические столбцыОперация moduloФункция ROUND()3Специальный формат возврата
Значения NULLСортировка результатов, часть 1Сортировка результатов, часть 2Повторение - Фирма по кибербезопасностиОграничение количества записейПовторение - Автозавод6Вводные вызовы
Повторение - Парламентские выборыПовторение - Арест преступника полициейПовторение - Ёмкость для напитков в бареПовторение - Создание новых столбцовПотренируйтесь самостоятельно: Песочница SQL