Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по 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 не подходят т.к. колчисетво полей в таблицах разное и параллельное соединение не нужно. Я привел не все поля а часть.


Наверх

Титульная страница Поиск, карта сайта Написать письмо