php - 数据库关系

标签 php mysql relational-database

我试图显示某个类别中的所有板,但我在 SQL 查询方面遇到了问题。我希望它遍历某个类别中的所有帖子,从中获取用户 ID,从用户表中找到用户名,然后计算帖子中有多少评论。

这是表格和一些字段:

boards  
    board_id  

comments - the replies to the post  
    comment_id  

discussion - the posts
    discussion_id  
    discussion_user  
    discussion_board  
    discussion_time  
    discussion_title  

users  
  id  
  username      

最初我有这个:

SELECT 
    a.discussion_id, 
    a.discussion_time, 
    a.discussion_title, 
    a.discussion_type, 
    a.discussion_media, 
    b.username, 
    Count(c.comment_id) AS totalComments
FROM 
    discussion a, 
    users b, 
    comments c
WHERE 
    discussion_board='".$board['board_id']."' AND 
    b.id=a.discussion_user AND 
    c.comment_post=a.discussion_id  

但它只有在找到评论时才会显示帖子。

我该如何解决这个问题?我仍在学习更多有关 SQL 和数据库关系的知识。左连接?

最佳答案

左连接是可行的方法,因为它们将从 a 中提取所有内容,而不管 b 或 c 中是否有相应的条目。关于连接(和一般的 SQL)的更多信息,请参见 here .

关于php - 数据库关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4390924/

相关文章:

php - MySQL 选择另一个表中缺少的条目

php - 从数据库中选择项目与另一个表中的最新日期进行比较

Mysql触发器: check value is actually set in before insert trigger

php - 单击按钮两次后代码可以工作

mysql - 在 Mysql 中使用 JOIN 从多个表中删除行

php - 如何通过模型 ID 和模型类型在 Laravel 中创建关系

php - Mysql 错误,无法输入数据。未选择数据库

php - 如果禁用了 javascript 并且您想要在 PHP 或正则表达式中准确地 (XXX)XXX-XXXX,如何过滤(和替换)phone# 输入

mysql - 用于存储指标的数据库架构/设计

php - MySql - 使用 IF ELSE 进行动态表选择