我希望能够列出在订单中的商品是特定商品的所有订单的每个订单中已购买的所有商品。
例如:我希望能够搜索所有已订购番茄酱的订单,并列出这些订单中的所有产品。
因此,我希望能够为购买番茄酱的所有客户说明该产品的其他产品。
它类似于你期望在任何网络市场上看到的,其他人也购买了......"
我使用的数据库有一个包含产品和订单ID的表。我想最简单的方法是编写一个PHP脚本来执行2个查询,一个用于返回包含相关项目的所有订单,另一个用于列出每个订单ID的所有项目。但是我曾经希望有一个聪明的"可以替换它的查询。
我的最终目标是搜索存在项目列表的所有订单。我们的想法是尝试减少结果,只显示那些已找到指定产品组合的结果。
答案 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'