mysql加入了多对多的关系

时间:2015-08-25 22:44:27

标签: mysql join

我正在尝试在mysql中学习多对多关系的连接, 我有四张桌子:

customers, orders, products, payments

我正在努力获取记录:

customer_name, order_status, pay_method, pro_name

我使用的查询:

SELECT cust_name,order_status,pay_method,pro_name FROM customer
INNER JOIN orders ON customer.cust_id = orders.cust_id
INNER JOIN payments ON payments.order_id = orders.order_id
INNER JOIN products ON products.pro_id = orders.pro_id

我正在收到我想要的结果,没有任何问题。但是这个查询只显示一个产品对一个订单,然后我意识到我应该有另一个单独的表,它将针对一个订单持有许多产品。在这个问题上,我无法得到理想的结果

1 个答案:

答案 0 :(得分:1)

您并不完全清楚自己要问的是什么,但我猜测您尝试做的是创建一个链接订单和产品的多对多表格?在这种情况下,您只需创建一个名为" productorders"其中包含order_id和pro_id。然后你会修改你的查询:

SELECT cust_name,order_status,pay_method,pro_name FROM customer
INNER JOIN orders ON customer.cust_id = orders.cust_id
INNER JOIN payments ON payments.order_id = orders.order_id
INNER JOIN productorders ON productorders.order_id = orders.order_id
INNER JOIN products ON products.pro_id = productorders.pro_id;

加入生产商将获得与订单相关的所有产品,然后加入产品将获得与每种产品相关的信息。