Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 是否将这两个查询更改为单个查询?_Mysql - Fatal编程技术网

Mysql 是否将这两个查询更改为单个查询?

Mysql 是否将这两个查询更改为单个查询?,mysql,Mysql,我希望在单个查询中获得数据和总计: SELECT id, order_name, order_ownurl, order_category, order_id FROM `order_details` WHERE ordered_name='nikon d3200' ORDER BY ordered_price asc 及 为此,可以使用如下相关子查询获取计数: SELECT o1.id, o1.order_name, o1.order_ownurl, o1.order

我希望在单个查询中获得数据和总计:

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


为此,可以使用如下相关子查询获取
计数

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;

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

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

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
说明:当我们从单个表中选择数据时,我们不需要子查询。 子查询看起来很糟糕,如果没有其他功能,我们应该使用它

如果你遇到什么问题,请告诉我


干杯

一个是原始数据,另一个是聚合。你能举例说明你的数据以及你想如何显示结果吗?我需要在单个结果中显示行和聚合。这不起作用吗???选择id、订单名称、订单所有者URL、订单类别、订单id,(从
订单详细信息
中选择计数(不同的订单id),从
产品详细信息
中选择计数(不同的订单id),从
按订单价格订购asc@Malai对不起,没有看到这个,我更新了我的答案。请参阅我的编辑。
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