MYSQL как объединение, но нужна только самая новая строка? - PullRequest
2 голосов
/ 02 февраля 2010

Я хочу сделать следующее, но в одном запросе:

$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 Ответ

3 голосов
/ 02 февраля 2010

Вы можете сделать это, используя следующий 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...