У меня есть две таблицы:
- покупатель (customer_id (PK), имя, фамилия, телефон)
- заказов (идентификатор заказа (PK), наименование товара, количество)
С customer_id = order_id (один order_id на клиента, который идентифицирует клиента).
Внутри моей базы данных есть:
INSERT INTO customer(first_name, last_name, phone) VALUES ('Colin', 'Farell', '123453');
INSERT INTO customer(first_name, last_name, phone) VALUES ('Aaron', 'Smith', '123451');
INSERT INTO customer(first_name, last_name, phone) VALUES ('Becky', 'Roberts', '123452');
INSERT INTO orders(item_name, quantity) VALUES ('Tissues', 2);
INSERT INTO orders(item_name, quantity) VALUES ('Lamp', 1);
INSERT INTO orders(item_name, quantity) VALUES ('Chocolate', 3);
Как я могу получить список товаров, купленных конкретным клиентом? Например, Колин купил 2 салфетки, лампу и 3 конфеты.
Правильным выводом будет (без повторения first_name):
Имя - Имя товара - Количество
Колин - Ткани - 2
Колин - Лампа - 1
Колин - Шоколад - 3
Я пытался:
SELECT customer.first_name, customer.last_name, orders.item_name, orders.quantity
FROM customer, orders
WHERE customer.customer_id = orders.order_id
ORDER BY customer.first_name;
Но это показывает всех клиентов, а не конкретного ...
Проблема также лежит в: WHERE customer.customer_id = orders.order_id
? Потому что если у клиента может быть много заказов, если я добавлю больше вещей в таблицу заказов, то мое предложение WHERE не будет иметь смысла?
Есть идеи, чтобы очистить мою путаницу? спасибо