【问题标题】:Getting data from multiple tables into single row while将多个表中的数据放入单行,同时
【发布时间】:2016-05-24 03:55:18
【问题描述】:

我正在尝试从 2 个表中检索数据并将多行合并到一个 while 循环中

帖子

post_id content          
------  -------      
   1    content1                     
   2    content2           
   3    content3  
   4    content4


comments

id      post_id   content   
------  ------    ------              
   1      1        Wharton university           
   1      2        Yale University         

我写的sql代码

    mysqli_query( $connect, "SELECT * FROM `posts`
 INNER JOIN  comments ON posts.post_id =  comments.post_id  ORDER BY 1 DESC");

问题我只得到帖子 id 1 和 2。虽然有超过 30 个帖子

我想在单个 while 循环中获取每个帖子的所有帖子和 cmets。

我该怎么做?

【问题讨论】:

  • jquery 在这个问题中的作用是什么?
  • 是从两个表中获取所有列数据! ,我必须为每一列命名吗?
  • there are over 30 posts,还有多少个cmets?对于您的情况,IMO 您应该使用 left outer join 而不是 inner join

标签: php mysql sql database


【解决方案1】:

将您的联接更改为 LEFT 联接,而不是 INNER 联接。

不同之处在于LEFT 连接将在没有 cmets 时使用 null,而 INNER 只会为您提供包含 cmets 的行。

【讨论】:

    【解决方案2】:

    您的 INNER 连接正在合并 post_id 字段上的两个表。您需要 LEFT 加入而不是 INNER 加入。 LEFT 连接将为您提供第一个表中的所有结果。

    【讨论】:

    • 其实,当我开始发帖的时候,还没有发帖。我真的不认为我需要复制一个非常基本的 SQL 概念。不要这么防守。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-26
    • 1970-01-01
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    相关资源
    最近更新 更多