mysql多表查詢及其 group by 組內排序


 

//多表查詢:得到最新的數據后再執行多表查詢

SELECT *
FROM `students` `st` RIGHT JOIN( SELECT * FROM
  (
    SELECT * FROM goutong WHERE goutongs='asdf' ORDER BY time DESC
  
) AS gtt GROUP BY gtt.name_id ORDER BY gtt.goutong_time DESC ) gt
  ON `gt`.`name_id`=`st`.`id` LIMIT 10

 

//先按時間排序查詢,然后分組(GROUP BY ) 
SELECT
* FROM   (     SELECT * FROM goutong WHERE goutongs='asdf' ORDER BY time DESC  ) AS gtt GROUP BY gtt.name_id ORDER BY gtt.time DESC

 

 

參考:http://blog.csdn.net/shellching/article/details/8292338

有數據表 comments
------------------------------------------------
| id | newsID | comment | theTime |
------------------------------------------------
| 1  |        1      |         aaa    |     11       |
------------------------------------------------
| 2  |        1      |         bbb    |     12       |
------------------------------------------------
| 3  |        2      |         ccc     |     12       |

------------------------------------------------

newsID是新聞ID,每條新聞有多條評論comment,theTime是發表評論的時間

現在想要查看每條新聞的最新一條評論:


select * from comments group by newsID 顯然不行


select * from comments group by newsID order by theTime desc 是組外排序,也不行


下面有兩種方法可以實現:

(1)
selet tt.id,tt.newsID,tt.comment,tt.theTime from(  
select id,newsID,comment,theTime from comments order by theTime desc) as tt group by newsID 


(2)
select id,newsID,comment,theTime from comments as tt group by id,newsID,comment,theTime having
 theTime=(select max(theTime) from comments where newsID=tt.newsID)

補充: 通過最大時間 然后再聯合查詢出其它信息,實現避免分組排序的問題。(多個子查詢實現功能)

 

        'SELECT gt.time,  gt.name_id,  gt.goutong,gt.operator, st.id,st.Stu_name,st.Stu_sex,st.stu_gongsi,st.stu_waishangke,st.Stu_jjcourse,st.Stu_phone,st.Stu_beizhu FROM jingjie_students AS st RIGHT JOIN (SELECT A.* FROM jingjie_goutong A, (SELECT name_id,MAX(goutong_time) goutong_time FROM jingjie_goutong WHERE  operator = '小明' GROUP BY name_id) B WHERE A.name_id = B.name_id AND A.time = B.time  ORDER BY A.time DESC LIMIT 0,10) gt ON st.id = gt.name_id';

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM