![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по SQL. Работа с несколькими таблицами. [D6, D7, XP]
Majesto © (2005-12-19 17:50:00)Есть три таблицы:
product (product_id, product_sku, product_name)
orders (order_id, order_subtotal, order_status)
order_item(order_id, product_id, order_status)
Мне необходимо написать sql запрос чтобы в результате выбора в програме пределенного order_id выводилась таблица с полями
product_sku, product_name, order_status, order_subtotal
Я пробую написать запрос вида - SELECT product.product_sku, product.product_name, orders.order_status, orders.order_subtotal
FROM product, order_item, orders
WHERE product.product_id = order_item.product_id AND order_item.order_id = :order_id - так вот в результате вмест дной строчки для определенного номера order_id я получаю несколько одинаковых.
Как сделать чтобы выводилась строчка без повторений? Пробовал различные объединения делать но ничего путного не получилось.
од дним значением order_id может сответствовать несколько значений product_id и других полей, но в данном случае каждая результирующая строчка так же повтряется по несколько раз.
Majesto (2005-12-19 19:19:00) [1]Т.е. получается что для каждого параметра SELECT -
1 -product.product_sku
2 - product.product_name
3- orders.order_status
4 - orders.order_subtotal
формируется строка в результате выполнения команды. Т.е. в результате получаются 4 строки с одинаковыми product_sku, product_name и различными комбинациями order_status, order_subtotal
Majesto (2005-12-19 19:10:00) [2]SELECT DISTINCT product.product_sku, product.product_name, orders.order_status, orders.order_subtotal
FROM product, order_item, orders
WHERE product.product_id = order_item.product_id AND order_item.order_id = :order_id
DISTINCT ни к чему положительному не привдит. Я думаю тут проблема в фрмировании таблицы п этому запросу. Я все книги перерыл, так и не разобрался в чем ошибка.
mfender (2005-12-19 18:32:00) [3]DISTINCT(<поле, повторяющиеся значения которого не должны выбираться>)
Majesto (2005-12-19 17:56:00) [4]Сразу скажу чт бъединения типа UNION не подходят т.к. колчисетво полей в таблицах разное и параллельное соединение не нужно. Я привел не все поля а часть.