mysql返回订购产品的订单的所有详细信息

时间:2015-04-04 10:40:13

标签: php html mysql

我希望能够列出在订单中的商品是特定商品的所有订单的每个订单中已购买的所有商品。

例如:我希望能够搜索所有已订购番茄酱的订单,并列出这些订单中的所有产品。

因此,我希望能够为购买番茄酱的所有客户说明该产品的其他产品。

它类似于你期望在任何网络市场上看到的,其他人也购买了......"

我使用的数据库有一个包含产品和订单ID的表。我想最简单的方法是编写一个PHP脚本来执行2个查询,一个用于返回包含相关项目的所有订单,另一个用于列出每个订单ID的所有项目。但是我曾经希望有一个聪明的"可以替换它的查询。

我的最终目标是搜索存在项目列表的所有订单。我们的想法是尝试减少结果,只显示那些已找到指定产品组合的结果。

1 个答案:

答案 0 :(得分:0)

假设:

products(id integer, name varchar(25)以及orders (id integer)order_items (order_id integer, product_id integer)

使用此:

SELECT oi.order_id, p2.name
  FROM products p
    INNER JOIN order_items oi
      ON p.id = oi.product_id
    INNER JOIN order_items oi2
      ON oi.order_id = oi2.order_id
    INNER JOIN products p2
      ON oi2.product_id = p2.id
    WHERE p.name = 'Carrot'

小提琴示例:http://sqlfiddle.com/#!9/0b9f4/2