標籤:
//多表查詢:得到最新的資料後再執行多表查詢
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)
mysql多表查詢及其 group by 組內排序