Php 仅从联接的MySQL查询中选择一行
我正在尝试用PHP/MySQL创建一个社交网站。我目前正在开发状态更新和状态系统的评论。我试图显示我的所有状态和对某些状态的评论。为此,我有两个表:comment和user\u status 我使用了这个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
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'];}