MYSQL喜欢加入但只需要最新的一行?

时间:2010-02-02 00:17:39

标签: php mysql join

我想在一个查询中执行以下操作:

$query = mysql_query("SELECT name FROM tbl_users WHERE category = '1'");
while($row = mysql_fetch_assoc($query))
{
$query2 = mysql_query("SELECT datecreated 
                       FROM tbl_comments 
                       ORDER BY datecreated DESC LIMIT 1");
$row2 = mysql_fetch_assoc($query2);
echo $row['name'] . " > " . $row2['datecreated'] ."<br />";
}

有一个用户表和一个评论表,我想显示一个用户列表和旁边最后一条评论的日期?

这可以在一个查询中实现吗?

1 个答案:

答案 0 :(得分:3)

您可以使用以下SQL执行此操作:

SELECT name,
       (
        SELECT datecreated
          FROM tbl_comments
          WHERE tbl_users.user_id = tbl_comments.user_id
          ORDER BY datecreated LIMIT 1
       )
FROM tbl_users
WHERE category = '1';

或使用:

SELECT tbl_users.name, MAX(datecreated) AS latestcomment
  FROM tbl_users LEFT JOIN tbl_comments ON (tbl_users.user_id = tbl_comments.user_id)
  GROUP BY tbl_users.name;
相关问题