我有2个表:Order表和orderDetails表。 我写了一个内部联接:
SELECT Order.id
FROM Order
INNER JOIN orderDetails
ON Order.id=orderDetails.id
我的输出为:
id
100
100
100
101
101
从上面的数据中,我希望每个记录输出的计数为:
id count
100 3
101 2
我该怎么做?
答案 0 :(得分:2)
Select OrderId , Count(*) as [Count]
from OrderDetials
Group By OrderId
OrderId将是引用订单表
的Order.Id列的foreing键列如果您的orderDetails.id引用Order.id列这将是查询。
Select id , Count(*) as [Count]
from OrderDetials
Group By id
答案 1 :(得分:0)
SELECT o.id, COUNT(*)
FROM Order o
JOIN orderDetails od ON o.id=od.id
GROUP BY o.id
答案 2 :(得分:0)
您需要使用COUNT聚合和GROUP BY子句。
SELECT Order.id, COUNT(DISTINCT orderDetails.id)
FROM Order
INNER JOIN orderDetails ON Order.id=orderDetails.orderId
GROUP BY Order.id
看起来你需要稍微改变连接条件。
答案 3 :(得分:-1)
使用分组
SELECT Order.id, count(*) as Count
FROM Order
INNER JOIN orderDetails
ON Order.id=orderDetails.id Group by Order.id