日期:2014-05-18  浏览次数:20613 次

像这样的SQL语句怎么写?急!
有两个表!
A、公司信息表,公司ID,公司名称
ID gsmc

B、公司留言回复表,留言ID,留言时间,留言内容,公司ID

guestID,guest_time,guest_content,gsID

A表的ID等于B表的公司ID


现在查询出的结束是这样的

留言ID  公司名称     留言时间    留言内容

1    合肥公司1   2007-10-27 测试留言1
2    合肥公司1   2007-10-25 测试留言2
3    合肥公司1   2007-10-24 测试留言3
4    合肥公司2    2007-10-23 测试留言4
5    合肥公司3    2007-10-22 测试留言5
6     合肥公司3    2007-10-27 测试留言1
7     合肥公司2    2007-10-27 测试留言
8     合肥公司2    2007-10-28 测试留言
9     合肥公司4    2007-10-29 测试留言



我现在想要的结果是:


每个公司只需要一条结果,那就是日期最近的那一条结果!


------解决方案--------------------
select t.留言ID , a.公司名称 , t.留言时间, t.留言内容 from a,
(
select m.* from b m,
(select 公司ID,max(留言时间) 留言时间 from b group by 公司ID) n
where m.公司ID = n.公司ID and m.公司ID = n.公司ID
) t
where a.公司ID = t.公司ID
order by t.留言ID