Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅从联接的MySQL查询中选择一行_Php_Mysql - Fatal编程技术网

Php 仅从联接的MySQL查询中选择一行

Php 仅从联接的MySQL查询中选择一行,php,mysql,Php,Mysql,我正在尝试用PHP/MySQL创建一个社交网站。我目前正在开发状态更新和状态系统的评论。我试图显示我的所有状态和对某些状态的评论。为此,我有两个表:comment和user\u status 我使用了这个MySQL查询 SELECT * FROM user_status LEFT JOIN comment ON id_status = comment.status_id WHERE sender_id = '$id2' OR receive_id

我正在尝试用PHP/MySQL创建一个社交网站。我目前正在开发状态更新和状态系统的评论。我试图显示我的所有状态和对某些状态的评论。为此,我有两个表:comment和user\u status

我使用了这个MySQL查询

      SELECT * FROM user_status LEFT JOIN 
      comment ON id_status = comment.status_id
      WHERE sender_id = '$id2'
      OR receive_id = '$id2'

     /* $id2 is my id */

我已经成功地显示了状态和一条评论。但问题是,当评论的数量超过一条时,状态会显示不止一次。显示多少相同的状态取决于在特定状态下有多少评论可用。但我想能够显示相同的状态只有一次,并显示一个以上的评论,如果在某些状态可用

这与其说是PHP的问题,不如说是关于SQL连接如何工作的混淆

听起来好像您真正想要的不是连接,而是来自两个表的一组不同的记录。在SQL SKILE开发多一点之前,请考虑通过两个查询来简化事物——一个是注释,另一个是用户状态。还要考虑只使用你感兴趣的特定字段,而不是使用SELECT*.<
,以防您希望通过单个查询来实现这一点。

我假设您没有显示查询的原始结果,而是将它们传送到html页面以显示。在文本框中仅显示最近的状态。然后显示一个表格或列出一个有序的注释列表


您的查询是正确的。

@Mushfiqul。如果您只是对状态表列感兴趣,那么请尝试修改您的查询:选择DISTINCT user_status.*..另外,请接受上的答案-有人已链接到如何为您执行此操作的说明。下面是我的php代码$query=mysql\u querySELECT*FROM user\u status LEFT JOIN comment ON id\u status=comment.status\u id其中sender\u id='$id2'或receive\u id='$id2';而$r=mysql_fetch_array$query{echo$r['status'];echo.$r['comment'];}