【问题标题】:Create news update with comments, how to join tables?创建带有评论的新闻更新,如何加入表格?
【发布时间】:2012-12-15 15:52:48
【问题描述】:

我想创建一个新闻更新系统,使用 MySQL 和 PHP。但我无法让它工作,加入语句和 PHP 有问题,所以我可以显示新闻更新和所有附加的 cmets(如果有效用户登录,该人可以单独删除每个评论)。但这只是我遇到问题的 JOIN 语句。

我有这些表和数据库架构

  1. news_tbl(news_id、日期、用户(fk to users_tbl.username)、标题、正文和图片)
  2. users_tbl(用户名、电子邮件、密码、用户类型)
  3. cmets_tbl (cmets_id, name, comment, news_id(fk to news_id))

我试过这个:

$sqlquery ="SELECT news_tbl.*, users_tbl.*, comments_tbl.*,
COUNT(comments_tbl.comments_id) AS comments_count
FROM news_tbl
LEFT JOIN users_tbl
ON news_tbl.user = users_tbl.username
LEFT JOIN comments_tbl
ON comments_tbl.news_id = news_tbl.news_id
GROUP BY news_tbl.news_id ";

但是我只能显示一个评论,我想要所有的 cmets,我想知道每个 cmets 的 ID,所以用户可以单独删除每个评论。如果没有写评论,我也无法获得新闻 ID?

【问题讨论】:

  • 欢迎来到 SO! What have you tried?
  • 是的..请分享您的查询..就是...
  • @Charles ... doppelganger!我从您的评论开始花了大约 30 秒,想知道为什么我发布了该评论,同时也没有修复 OP 的愚蠢格式。

标签: php mysql


【解决方案1】:

这应该可以大致获得您想要的结果,尽管您应该始终共享您的查询并准确指定您假装要实现的目标。

Select ut.user_id,nt.news_id,nt.headline, nt.body,ct.comments_id,
ct.comment,count(ct.comments_id) as total
from news_tbl nt
inner join users_tbl ut on ut.user_id=nt.user_id
left join comments_tbl ct on ct.news_id=nt.news_id
group by ut.user_id,nt.news_id

祝你好运。

【讨论】:

  • @user1906437 试试left join comments_tbl ct on ct.news_id=nt.news_id
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多