2013-08-14 1 views
0

ТаблицыSQL Select запрос

МЕНЮ: Uid имя start_date цена stop_date xdele last_editor, last_editor_Ip last_edit_date и версия

MENU_ITEMS: UID, ref_menu ref_menu_version ref_type ref_item ref_item_version position xdele last_editor, last_editor_ip last_edit_date и версия

ПРОДУКТЫ: UID Имя Описание Цена Количество id_um ref_image xdele last_editor, last_editor_ip, last_edit_date и версия

PRODUCT_GROUPS: UID название описание ref_Menu ref_menu версии и другие выше

КЛАССИФИКАЦИЯ : uid ref_product ref_product_version ref_group и ref_group_version

SO: таблица классификации объединяет продукты в группы товаров. каждое меню содержит пункты меню из этой таблицы. Мне нужен запрос выбора, который получает все продукты из меню (ref_type равно 0, если это продукт и 1, если это группа продуктов). Я могу получить все продукты, если они индивидуальны (ref_type = 0), но если они в группах, я не знаю, как их получить.

Спасибо!

+0

Я сделал это в java, но я хочу сделать это в SQL - я не знаю, как это сделать. –

+0

Для какой СУБД? Oracle, MySQL ...? Запрос может быть очень разным – Vargan

+0

База данных PostgreSQL –

ответ

0

Вам нужно присоединиться к MENUS и MENU_ITEM, я не сильный в PostgreSQL, поэтому мой синтаксис не должен работать. попробовать что-то подобное:

SELECT <what you need> 
FROM MENUS, MENU_ITEM, PRODUCTS 
WHERE MENUS.uid = MENU_ITEM.UID 
    AND MENUS.uid = PRODUCT.UID 
    AND MENU_ITEM.ref_id = 1 

это то, что вам нужно, или я неправильно понял ваш вопрос?

+0

Вот как я соединяю пункты меню с меню, это правильно. То, что мне нужно, - это продукты в меню, заданные menuitems ref_item. Проблема в том, как я могу получить продукты независимо от того, являются ли они индивидуальными или группами. –

+0

Недостаточно добавить таблицу ПРОДУКТОВ в соединение и снова проверить uid? – Vargan

+0

Я отредактировал ответ – Vargan