2在PHP MYSql中使用UNION进行分组

2在PHP MYSql中使用UNION进行分组,php,mysql,count,group-by,sum,Php,Mysql,Count,Group By,Sum,在上面,我还需要pl.aadby分组 根据以上内容,我得到以下信息:/ 但我需要aadby的以下分组: 如果我移除左下方的连接 在prdb.cutaname=cutid.cutname上左连接剪切为cutid 然后我不需要按pl.prdid分组,然后我可以按pl.prdid分组 pl.aadby…但结果计数增加,因此按pl.prdby分组 减少我的计数,这是正确的结果,但如何做另一个 aadby的分组方式 基于您提供的样本数据。。你应该使用 count | aadby | wghval 5

在上面,我还需要pl.aadby分组

根据以上内容,我得到以下信息:/

但我需要aadby的以下分组:

如果我移除左下方的连接

在prdb.cutaname=cutid.cutname上左连接剪切为cutid

然后我不需要按pl.prdid分组,然后我可以按pl.prdid分组 pl.aadby…但结果计数增加,因此按pl.prdby分组 减少我的计数,这是正确的结果,但如何做另一个 aadby的分组方式


基于您提供的样本数据。。你应该使用

count | aadby  | wghval
5     | name1  | 0.9 
8     | name2  | 0.5

我不知道你的数据,也不知道你想得到什么逻辑输出。但有一种方法我可以如下所示使用您的查询作为子查询

 ....
WHERE pl.aadby = 103 
GROUP BY aadby
ORDER BY aadby ASC

其中pl.aadby=103 GROUP BY pl.aadby仅使用此选项当我按pl.aadby分组时,它不会显示我需要的内容它显示示例数据现在显示您的表数据,如果我按pl.prdid删除GROUP BY pl.prdid,则我会获得pl的重复值,prdid如果我按pl.aadby保留GROUP,则我会获得名称1=2的计数,但是如果我删除它并用GROUP BY pl.aadby替换它,那么我得到的名称1=56,因此我需要两个GROUPBY当我执行GROUP BY pl.aadby时,它没有显示我需要什么,它显示我的样本数据,如果我删除GROUP BY pl.prdid,那么我得到pl的重复值,prdid“它显示我的样本数据”是什么意思。。我根据你提供的样品来评估你的问题。。。。这不是样本数据…根据我的查询输出。。。。但我需要aadbyyes分组的输出..它根据需要显示结果..让我用我的整个查询进行测试..谢谢bhailahi我不知道为什么..但是当我在prdb.cutaname=cutid.cutname上删除左连接切割作为cutid时,计数保持不变,但wghvalue得到更改…这是name1计数=2和wghvalue=45的左连接,如果我删除左连接,则name1计数=2和wghvalue=23
count | aadby  | wghval
5     | name1  | 0.9 
8     | name2  | 0.5
 ....
WHERE pl.aadby = 103 
GROUP BY aadby
ORDER BY aadby ASC
select  sum(t1.count) as count,t1.addby,sum(t1.wghvalue) wghvalue
from 
(SELECT  
  COUNT(pl.id) as count,addby,SUM(pl.wghvalue) as wghvalue
FROM product AS prod
LEFT JOIN producta AS prda ON prod.id = prda.id
LEFT JOIN prdoctb AS prdb ON prod.pid = prda.pid 
LEFT JOIN
  (
  SELECT
    id,
    wghvalue,
    addby,prdid
   FROM prdentry
  WHERE 1=1 GROUP BY prdid
  UNION
SELECT
  id,
  wghvalue,
  addby,
  prdid
FROM
  prdentry
WHERE 1=1
GROUP BY prdid
) AS pl ON( pl.prdid = prda.prdid  )
LEFT JOIN cut AS cutid ON prdb.cutaname = cutid.cutname  
WHERE pl.aadby = 103 
GROUP BY pl.prdid 
ORDER BY
  pl.prdid ASC,
  pl.aadby ASC ) t1
group by t1.addby