Общие > Базы данных
Связь многие-ко-многим между двумя таблицами?
Kwazar:
Как реализовать связь многие-ко-многим между двумя таблицами?
Пример связи многие-ко-многим:
Есть таблица продуктов
products(product_id,product_name) и таблица заказов
,назовем ее accounts(number,product_id,customer_id)
number-номер заказа,customer_id-покупатель
Но ,дело в том что покупатель может в одном заказе выбрать
несколько продуктов.
Меня интересует как предусмотреть эту возможность
и как написать запрос по одному покупателю ,который бы выводил
все продукты выбранные покупателем в данном заказе.
Заранее спасибо.
Макс:
Еще одну таблицу
products2orders(product_id, order_id)
Запрос примерно такой будет
SELECT p.product_name FROM products p, orders o, products2orders po WHERE po.order_id = o.order_id AND p.product_id = po.product_id AND o.order_id = $order_id
(это примерно, читай про SELECT-ы по нескольким таблицам и про JOIN)
Kwazar:
Хм...
Думаю, что можно соединить таблицы. В данном случае я думаю, подойдет
"естественное \'соединение".
Это означает, что можно устанавливать отношения на основе ее структуры , а
не содержимого базы, (неестественное соединение).
SELECT number,product_name,customer_id FROM products, accounts WHERE
customer_id=\'$login\'.
Я все правильно сделал?
Просто это одно из тестовых заданий, которые мне надо было решить. Хотелось бы услышать, правильно ли я сделал?
БД: Oracle
Гость:
SELECT p.product_name FROM products p, accounts a WHERE
a.customer_id=$login and p.number = $number
ThE0ReTiC:
--- Цитировать ---БД: Oracle
--- Конец цитаты ---
создай представление (оно и будет аналогом 3 таблицы в mysql)
Навигация
Перейти к полной версии