我有两张桌子: 的订单
orders_ID
orderDate
订单明细
product_ID
order_ID
quantity
产品
product_ID
productName
productDescription
我想在product_ID 1和4的订单明细中找到所有记录(因此,试图查看一个订单何时包含这两个产品)。因此运行此代码 - INNER JOIN创建一个结果表,其中仅包含包含产品1,4或1和4的订单。
然后我想要计算所有“订单详细信息”.order_ID重复项 - 这些将是包含1和4的所有订单(重要数据库 - 给定订单不包含任何产品中的1个以上) )。
这是我的代码 - 不太有用 - 有什么想法吗?
SELECT order_ID, COUNT(*) TotalCount
FROM
(SELECT * FROM Orders o INNER JOIN "Order Details" od ON o.order_ID = od.order_ID
WHERE od.product_ID = 1 OR od.product_ID = 4)
GROUP BY order_ID
HAVING COUNT(*) > 1
ORDER BY COUNT(*) DESC
谢谢 - 我浏览了论坛,但没有看到任何帮助我的东西 - 一段时间都在尝试。
答案 0 :(得分:0)
我认为你想要的是一个加入:
select prod1.order_id from `Order Details` prod1 JOIN `Order Details` prod4 on prod1.order_ID=prod2.order_ID where prod1.product_ID=1 and prod2.product_ID=4;