Базы данных на самом деле не работают так; Вы получили то, что просили, и без дубликатов (все строки разные). Вы смотрите на столбцы данных, поступивших из заказов, и говорите: «О, данные дублированы», но это не так - они объединены «в контексте»
Представьте, что я дал вам только одну из ваших строк выборки из ожидаемого результата:
Paper 10 5
Обещаю, я просто скопировал и вставил это.
Из какого он заказа?
Понятия не имею ... Вы потеряли контекст, поэтому он может быть из любого заказа. Строки - это отдельные объекты, которые стоят отдельно и без ссылки на любую другую строку как набор данных. Вот почему одинаковая информация о заказе должна появляться в каждой строке. Можно было бы создать базу данных для получения ожидаемого результата, который вы запрашивали, но это было бы действительно сложно в простой базе данных, такой как sqlite. Для меня важнее указать, почему существует разница между тем, что, по вашему мнению, даст вам запрос, и тем, что оно дало вам, поскольку я думаю, что это реальная проблема: запрос дал вам то, что предполагалось, в этом нет ошибки Это; это скорее ошибочное предположение о том, что вы получите
Если вы пытаетесь подготовить отчет, в котором в качестве заголовка используется порядок, выберите их по отдельности в приложении переднего плана. Выберите ВСЕ заказы, затем один за другим (заказ за заказом) извлеките все детали товара, создав отчет по ходу дела:
myorders = dbquery("SELECT * FROM ORDERS")
for each(order o in myorders)
print(o.header)
details = dbquery("SELECT * FROM dispatch_products where id_order = ?", o.id)
for each(detail d in details)
print(d.prod, d.qty, d.rate)