Используйте EXISTS, чтобы выбрать клиентов, у которых есть хотя бы один заказ, без дублирования строки клиента по числу заказов.
-- Напишите SQL-запрос, который вернет следующие данные:
Используйте EXISTS, чтобы выбрать клиентов, у которых есть хотя бы один заказ, без дублирования строки клиента по числу заказов.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
-- Напишите SQL-запрос, который вернет следующие данные: -- n1. Вывести имя клиента и его город, которые сделали хотя бы 1 заказ
Ответ
Используйте EXISTS, чтобы выбрать клиентов, у которых есть хотя бы один заказ, без дублирования строки клиента по числу заказов.
Для условной схемы customers(id, name, city) и orders(id, customer_id):
SELECT c.name, c.city
FROM customers AS c
WHERE EXISTS (
SELECT 1
FROM orders AS o
WHERE o.customer_id = c.id
);
Имена таблиц в условии не заданы, поэтому здесь они обозначены явно. EXISTS проверяет наличие связи и не требует считать все заказы. Для большого объёма полезен индекс по orders.customer_id; два разных клиента с одинаковым именем не должны автоматически объединяться.