帮忙写个sql语句

cgstian 2010-02-04 03:03:17
一个用户信息表(id,mingzi),一个留言表(id,title,userid),一个回复表(id,lyid,userid,date),回复表和留言表中的userid与用户表中的id对应,回复表中的lyid与留言表中的id相对应。
现在给出一个用户的id,要查出他所回复的留言。每条记录包括留言title,发布人,回复数,最后更新。该怎么写?
...全文
213 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
丰云 2010-02-04
  • 打赏
  • 举报
回复

select distinct b.title,a.mingzi,count(c.lyid) as c_count,max(date) as date
from a,b,c
where a.id = b.userid
and a.id = c.userid
and b.id = c.lyid
group by b.title,a.mingzi
Skyhoo 2010-02-04
  • 打赏
  • 举报
回复
第一 把表关联起来

第二 你可以用联接查询或者子查询都可以办到

Dekend 2010-02-04
  • 打赏
  • 举报
回复
其实也可以这样, 如果查询所有,把指定ID的条件去掉就行


select distinct t2.title, t1.mingzi, count(1) as number
from yonghu t1, liuyan t2, huifu t3
where t1.id = t3.userid
and t2.id = t3.lyid
and t1.id = '指定的ID'
group by t2.title, t1.mingzi
Dekend 2010-02-04
  • 打赏
  • 举报
回复
select distinct t2.title, t1.mingzi, (select distinct count(*)
from yonghu t1, liuyan t2, huifu t3
where t1.id = 'userid'
and t1.id = t3.userid
and t2.id = t3.lyid) as number
from yonghu t1, liuyan t2, huifu t3
where t1.id = 'userid'
and t1.id = t3.userid
and t2.id = t3.lyid

我自己试过,上面的方法也可行
cgstian 2010-02-04
  • 打赏
  • 举报
回复
现在出现了这样的情况,结果中有查询出来的重复的留言啊,某个id对一个留言回复了5次,就查出了5个记录,可他回复的是一个留言啊
whb147 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cgstian 的回复:]
谢谢旋风大哥啊,最后更新要的不是date,要的是对这个标题最后更新的那个用户
[/Quote]
这你也不会修改吗?
chirsty423 2010-02-04
  • 打赏
  • 举报
回复
SELECT 你要的东西 FROM 信息表
INNER JOIN 留言表
ON 信息表.ID = 留言表.userid
再 INNER JOIN 回复表
ON 回复表.lyid = 留言表.ID
WHERE 信息表.ID = 你给的ID
cgstian 2010-02-04
  • 打赏
  • 举报
回复
谢谢旋风大哥啊,最后更新要的不是date,要的是对这个标题最后更新的那个用户
wxg22526451 2010-02-04
  • 打赏
  • 举报
回复
try->
select  标题=title,
发布人=u.mingzi,
回复数=count(1),
最后更新=max(r.date)
from 留言表 l join 用户信息表 u on l.userid=u.id
join 回复表 r on l.id=r.lyid
join 用户信息表 u2 on r.userid=u2.id
where u2.userid=用户ID
group by title
cgstian 2010-02-04
  • 打赏
  • 举报
回复
括号里面的是三个表的字段 ,我表里面有数据,没法发啊,高手快来救我!
ws_hgo 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cgstian 的回复:]
具体该怎么写呢?高手快来救我啊
[/Quote]
给点测试数据
及其结果
cgstian 2010-02-04
  • 打赏
  • 举报
回复
具体该怎么写呢?高手快来救我啊
wc0730 2010-02-04
  • 打赏
  • 举报
回复
联合查询,楼主可以查一下就明白了……很容易的……只要把所有有关的表都FROM了,然后把对应的主键都对应好就可以了……
wc0730 2010-02-04
  • 打赏
  • 举报
回复
form 的时候类似这样的模式 from table1,table2 然后 where 的时候把你对应的主键都对应起来比如where table1.id=table2.id

62,265

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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