У меня есть SQL-запрос, извлекающий несколько результатов из разных таблиц, одна из таблиц - "orders" - содержит данные о клиенте с order_id в качестве PK, другая таблица - order_products - содержит каждый заказанный продукт со ссылкой на order_id и другой столбец как PK.
По сути, мне нужно знать, как запрашивать базу данных таким образом, чтобы каждый order_id отображался только один раз, а данные из таблицы order_products добавляются в одну строку, даже если клиенты заказали более одного продукта в этом конкретном случае. порядок.
В настоящее время данные о клиентах повторяются в результатах, если они заказали несколько разных продуктов - я знаю, почему это происходит (см. Запрос), но не знаю, как получить результаты в требуемом формате. Моя лучшая идея - это вложенный запрос, в котором результаты из order_products загружаются в массив или что-то в этом роде, но я даже не знаю, возможно ли это.
Я использую MySQL и PHP с результатами, которые затем выводятся в XML-документе. Если вам нужна дополнительная информация, пожалуйста, спросите!
SELECT uc_orders.order_id, uc_orders.order_total, uc_orders.primary_email,
uc_orders.delivery_first_name, uc_orders.delivery_last_name,
uc_orders.delivery_street1, uc_orders.delivery_street2, uc_orders.delivery_city,
uc_orders.delivery_zone, uc_orders.delivery_postal_code, uc_zones.zone_name,
uc_order_products.title, uc_order_products.price
FROM uc_orders
LEFT JOIN uc_zones ON uc_orders.delivery_zone = uc_zones.zone_id
LEFT JOIN uc_order_products ON uc_orders.order_id = uc_order_products.order_id
ORDER BY order_id