search

Home  >  Q&A  >  body text

How will the subsequent results of mysql order by subquery also be displayed in the result set?

mysql order by subquery, the subsequent results are also displayed in the result set

My mysql statement:

SELECT * FROM wht_user AS t1 WHERE pid =79 ORDER BY ( 
    SELECT sum( `distribution_money` ) AS
    AGGREGATE FROM wht_distribution_detail AS t2
    WHERE t1.id = t2.uid
    AND `puid` =79
    AND `status` =4
    GROUP BY `uid`
    ORDER BY `updatetime` DESC
) DESC 

How to display AGGREGATE in the result set? Or is there a better way?

阿神阿神2746 days ago633

reply all(1)I'll reply

  • ringa_lee

    ringa_lee2017-05-18 10:57:42

    It’s better to ask for others than to ask for yourself. Solved:

    SELECT * , COALESCE( SUM( `distribution_money` ) , 0.00 ) AS
    AGGREGATE
    FROM (
    
        SELECT t1. * , t2 . *
        FROM `wht_user` AS t1
        LEFT JOIN (
            SELECT `uid`, `distribution_money`
            FROM `wht_distribution_detail`
            WHERE `puid` = 79
            AND `status` = 4
        ) AS t2 ON t1.`id` = t2.`uid`
    ) AS s2
    WHERE `pid` =79
    GROUP BY `id`
    ORDER BY AGGREGATE DESC 
    

    reply
    0
  • Cancelreply