Рассмотрим следующую схему:
Customers:
Col | Type |
-------------------|
id | INTEGER |
name | VARCHAR |
Orders:
Col | Type |
----------------------|
id | INTEGER |
customer_id | INTEGER |
date | DATE |
Items
Col | Type |
----------------------|
id | INTEGER |
order_id | INTEGER |
name | VARCHAR |
quantity | INTEGER |
А вот краткий обзор схемы:
У клиента может быть много заказов, а у заказа может быть много предметов
Примечание: Вы можете утверждать, что элементы должны ссылаться на таблицу некоторых продуктов с product_id, но пусть это будет просто, как сейчас.
Из моей базы данных я хочу задать следующий вопрос:
Для данного клиента перечислите все позиции, которые начинаются с La.
Моя версия запроса выглядит следующим образом:
ВЫБРАТЬ * ИЗ ИЗДЕЛИЙ, ГДЕ НАМ НРАВИТСЯ 'La%'
Это вернет ВСЕ товары, которые начинаются с La для ВСЕХ клиентов. Я хочу, чтобы я получил все товары для КОНКРЕТНОГО покупателя с скажем ID 1. Как мне написать такой запрос? Моя вторая версия, которая будет делать это так:
SELECT * ИЗ элементов, ГДЕ НАМ НРАВИТСЯ 'La%' И order_id в (идентификатор SELECT FROM заказов, ГДЕ customer_id = 1);
Но есть ли у них какой-нибудь другой эффективный / элегантный или более лучший способ сделать то же самое?