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

时间:2012-08-15 11:22:39

标签: php mysql

我正在尝试用PHP / MySQL创建一个社交网站。我目前正在开发状态更新和对状态系统的评论。我试图显示我的所有状态和对某些状态的评论。为此,我有两个表:commentuser_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 */

我已成功展示状态和一条评论。但问题是,当评论数量超过一个时,状态显示不止一次。将显示多少相同的状态取决于特定状态的可用评论量。但我希望能够只显示一次相同的状态,并在特定状态下显示多个注释(如果可用)。

2 个答案:

答案 0 :(得分:2)

这不是一个PHP问题,因为它混淆了SQL如何加入工作。

听起来好像你真正想要的不是一个连接,而是来自两个表的一组独特的记录。在你的SQL skils开发更多之前,考虑通过两个查询来简化事情 - 每个查询用于comment和user_status。另外,请考虑仅使用您感兴趣的特定字段,而不是使用SELECT *

Here is a visual explanation of different SQL joins,如果您想通过单个查询来实现此目的。

答案 1 :(得分:0)

我假设您没有显示查询的原始结果,而是将它们连接到要显示的html页面。仅显示文本框中的最新状态。然后显示一个表格或列出一个有序的评论列表。

您的查询是正确的。