mySQL SQL连接表然后查找具有重复项的行

时间:2014-02-28 01:13:17

标签: mysql sql

我有两张桌子: 的订单

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

谢谢 - 我浏览了论坛,但没有看到任何帮助我的东西 - 一段时间都在尝试。

1 个答案:

答案 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;