怎么读取最新回复的帖子,并且显示不重复?

luqingkkk 2018-05-07 06:57:04
数据表A
id title
1 我是新闻
2 今天天气很好
3 给点意见

数据表B
id a_id title
1 2 是的,天气真的很好
2 2 还不错
3 1 我不是
4 3 好的

表B里是对表A的回复,B.a_id就是表A对应的字段。

现在我需要列出表A里有最新回复的列,
我的语句是
sql="select A.* from A left join B on A.id=B.a_id order by B.id desc"
这样列出来的数据,会有重复的项。
比如上面的就会显示一共4条数据,有两条是显示第2条“今天天气很好”。

我加上distinct
sql="select distinct A.* from A left join B on A.id=B.a_id order by B.id desc"
运行出错,显示distinct与order by冲突。
求大神们帮解决,谢谢大家了
...全文
550 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
luqingkkk 2018-05-09
  • 打赏
  • 举报
回复
引用 3 楼 LittleMan_LC 的回复:
下面这个可以,暂时没想出来更简单的
select A.*,b.id as bid from A left join B on A.id=B.a_id where b.id in (select min(BID) from (select A.*,b.id as bid from A left join B on A.id=B.a_id) AS T group by T.id) order by bid desc
试了一下,还是报错,现在已经加上时间字段来解决了,谢谢
luqingkkk 2018-05-09
  • 打赏
  • 举报
回复
引用 4 楼 QWERT4745 的回复:
加个回复时间比较合理,如果只是自己写着玩那随便,真正开发项目那扩展的很多功能都不好实现,这个时间肯定是少不了
好吧,还是老老实实加个时间字段吧
QWERT4745 2018-05-08
  • 打赏
  • 举报
回复
加个回复时间比较合理,如果只是自己写着玩那随便,真正开发项目那扩展的很多功能都不好实现,这个时间肯定是少不了
LittleMan_LC 2018-05-08
  • 打赏
  • 举报
回复
下面这个可以,暂时没想出来更简单的
select A.*,b.id as bid from A left join B on A.id=B.a_id where b.id in (select min(BID) from (select A.*,b.id as bid from A left join B on A.id=B.a_id) AS T group by T.id) order by bid desc
luqingkkk 2018-05-08
  • 打赏
  • 举报
回复
引用 1 楼 usecf 的回复:
你可以增加一个字段 用来表示 新帖子 已读帖子
之前有想过加字段记录最新回复的时间,可是以后数据很大了,会增加数据体积。SQL应该有语句可以做到吧? 我已经写出来读出有最新回复了,就是读出来的数据有重复,如果能去重就好了。
usecf 2018-05-08
  • 打赏
  • 举报
回复
你可以增加一个字段 用来表示 新帖子 已读帖子

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧