0

我想要单个查询中的数据和总数:

SELECT id, order_name, order_ownurl, order_category, order_id
FROM `order_details`
WHERE ordered_name='nikon d3200'
ORDER BY ordered_price asc

SELECT count(distinct order_id)
FROM `order_details`
WHERE ordered_name='nikon d3200'
4

2 回答 2

1

为此,您可以COUNT像这样使用相关子查询:

SELECT 
  o1.id, 
  o1.order_name, 
  o1.order_ownurl, 
  o1.order_category, 
  o1.order_id,
  (SELECT count(distinct o2.order_id)
   FROM `order_details` o2
   WHERE o2.ordered_name = o1.ordered_name) AS OrderCount
FROM `order_details` o1
WHERE o1.ordered_name = 'nikon d3200'
ORDER BY o1.ordered_price asc;
于 2013-01-30T09:54:19.913 回答
1

这是一种更好的方法,为什么我们需要子查询

这是解决方案,如果我遗漏了什么,请告诉我!!

SELECT id, order_name, order_ownurl, order_category, order_id,count(distinct order_id)
FROM `order_details`
WHERE ordered_name='nikon d3200'
ORDER BY ordered_price asc

说明:当我们从单个表中选择数据时,我们不需要子查询。子查询看起来很糟糕,如果没有其他方法,我们应该使用。

如果您遇到问题,请告诉我。

干杯!!!!

于 2013-09-05T13:59:52.097 回答