🗄️ SQL и базы данных  ·  20 вопросов  ·  ~36 мин  ·  ⏱ Таймер 36:00  ·  Средний  ·  👥 1 прошёл

Соединение таблиц JOIN

Соединения проверяются на маленьких данных, где видно каждую получившуюся пару. В тесте есть пропавшие строки из LEFT JOIN, дубли из связей один-ко-многим, фильтр в ON и WHERE, самосоединение и выбор типа JOIN под задачу. Термины сами по себе не помогут: нужно построить результат.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выбери один ответ из четырёх. В тесте 20 вопросов и 36 минут. После завершения откроются общий процент, четыре тематические шкалы, правильные ответы и разбор каждого задания.
Вопрос 1 из 20
Сколько строк вернёт соединение?
SQL
WITH a(id) AS (VALUES (1),(2)),
     b(a_id) AS (VALUES (1),(2),(2))
SELECT * FROM a JOIN b ON b.a_id=a.id;
Вопрос 2 из 20
Что произойдёт, если забыть условие ON и явно написать CROSS JOIN?
Вопрос 3 из 20
Какое условие соединения защищает от смешения одинаковых id разных организаций?
Вопрос 4 из 20
Почему условие ON users.id = orders.id подозрительно?
Вопрос 5 из 20
Какой запрос соединяет заказ с его клиентом по предполагаемому внешнему ключу?
Вопрос 6 из 20
Какие клиенты попадут в INNER JOIN с orders?
Вопрос 7 из 20
У одного клиента три заказа. Сколько раз его имя появится в результате?
SQL
SELECT c.name
FROM customers c
JOIN orders o ON o.customer_id=c.id;
Вопрос 8 из 20
Что вернёт запрос для автора без книг?
SQL
SELECT a.name, b.title
FROM authors a
JOIN books b ON b.author_id=a.id;
Вопрос 9 из 20
Цепочка customer → orders → order_items используется для вывода позиций. Что определяет число строк?
Вопрос 10 из 20
Как выбрать клиентов, у которых есть заказы, но вывести каждого клиента один раз?
Вопрос 11 из 20
Что вернёт LEFT JOIN для клиента без заказов?
Вопрос 12 из 20
Почему этот LEFT JOIN фактически исключает клиентов без оплаченных заказов?
SQL
SELECT c.id, o.id
FROM customers c
LEFT JOIN orders o ON o.customer_id=c.id
WHERE o.status='paid';
Вопрос 13 из 20
Как сохранить всех клиентов, присоединив только оплаченные заказы?
Вопрос 14 из 20
Для чего подходит FULL JOIN?
Вопрос 15 из 20
orders.id — первичный ключ. Как найти клиентов без заказов через LEFT JOIN?
Вопрос 16 из 20
Почему SELECT DISTINCT не всегда является правильным лечением дублей после JOIN?
Вопрос 17 из 20
Заказ имеет две позиции и два платежа. Сколько строк даст прямое соединение orders → items и orders → payments для одного заказа?
Вопрос 18 из 20
У заказа несколько позиций и несколько платежей. Как посчитать обе суммы без их взаимного умножения при JOIN?
Вопрос 19 из 20
В таблице tags у статьи несколько тегов. Что означает повторение article.id после JOIN?
Вопрос 20 из 20
Какой запрос выводит по одной строке на каждый заказ, включая заказы без позиций, с количеством его позиций?

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу