高手帮忙,这条SQL语句为什么错了?谢谢

haobojunsun 2006-05-19 10:36:25
我有三个表,一个表用来存用户信息users(userId,userName)主键是userId;一个表用来存用户发表的新闻news(id,userId,title,total)主键是id;一个表用来存用户对新闻的评论
comment(id,userId,title,newsId)主键是id。

我想实现,绑定DataList的时候,显示用户的信息,并且显示新闻的标题,还能显示有多少人参与了评论,这样就需要3个表的查询。

我是这么写的


select users.userName,news.title,count(comment.newsId) as [sum]
from comment
inner join users on users.userId=comment.userId
inner join news on news.id=comment.newsId
group by users.userName,news.title


可是提示我错误,错误如下

语法错误 (操作符丢失) 在查询表达式 'users.userId=comment.userId inner join news on news.id=comment.newsId'

...全文
166 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
haobojunsun 2006-05-20
  • 打赏
  • 举报
回复
没这个必要,因为评论表和新闻表有关联字段,而新闻表和用户表有关联字段,
所以你通过评论表和新闻表查询也可以查到UserID的,但你多个也可,不甚合理。

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

可是,新闻表里存的userId是记录谁发表的新闻,而评论表里的userId存的是对新闻评论用户的userId,也就是说,评论这个新闻的人,不可能全是发表这个新闻的用户吧。所以即便新闻表和用户表有关联,评论表和新闻表有关联,但是没有评论表的userId是不能得到评论者的信息的。
aspdotnet2005 2006-05-20
  • 打赏
  • 举报
回复
我首先要知道这个评论是哪个用户评论的
-----------------
没这个必要,因为评论表和新闻表有关联字段,而新闻表和用户表有关联字段,
所以你通过评论表和新闻表查询也可以查到UserID的,但你多个也可,不甚合理。
aspdotnet2005 2006-05-20
  • 打赏
  • 举报
回复
select users.userName,news.title,
(select count(c.id) from comment as c where c.newsId=news.id) as [sum]
from news
inner join users on news.userid=users.userId
group by users.userName,news.title
haobojunsun 2006-05-20
  • 打赏
  • 举报
回复
回 WeekZero(星期零)

我首先要知道这个评论是哪个用户评论的,所以要有userId这个字段。新闻的主键我用的newsId

回 jiangkeredgirl(地狱卐小怪)

你说的方法我用过,不行的。怎么办啊
jiangkeredgirl 2006-05-19
  • 打赏
  • 举报
回复
没发现你的错误
试试这个:
select users.userName,news.title,count(comment.newsId) as [sum]
from comment,users,news
where users.userId=comment.userId
and news.id=comment.newsId
group by users.userName,news.title
WeekZero 2006-05-19
  • 打赏
  • 举报
回复
comment(id,userId,title,newsId)

这个表建的有问题吧,userId应该是新闻的id,不能和用户来关联,新闻的评论是和单条的新闻信息对应的

62,041

社区成员

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

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

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

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