Как мне присоединиться к этим столам? - PullRequest
2 голосов
/ 07 августа 2009

Это таблицы:

threads:
id, date, title, text


comments:
id, thread_id, date, comment

Как бы я сделал, чтобы перечислить последнюю прокомментированную ветку сверху?

В настоящее время это выглядит так:

$threads = mysql_query("SELECT id, title FROM threads ORDER BY date ASC");

while ($thread = mysql_fetch_assoc($threads)) {

 echo $thread['title'];

}

Я не могу понять это, ребята. Так что, если бы кто-то мог дать мне руку, это было бы здорово!

Ура!

Ответы [ 4 ]

5 голосов
/ 07 августа 2009

Попробуйте это:

SELECT DISTINCT t.id, t.title
  FROM threads t LEFT JOIN comments c ON t.id = c.thread_id
 ORDER BY c.date DESC

Левое объединение необходимо, если у вас есть темы без комментариев.

1 голос
/ 07 августа 2009

Это должно быть сделано:

SELECT threads.id, threads.title, max(comments.date)
   FROM threads 
    LEFT OUTER JOIN comments
   ON threads.id = comments.thread_id
GROUP BY threads.id, threads.title
ORDER BY max(comments.date) DESC
0 голосов
/ 07 августа 2009

Поскольку вам нужен список тем с последними комментариями вверху, вам нужно присоединиться по идентификатору, а затем отсортировать DESC по дате комментария.

SELECT t.id, t.title, c.date
FROM threads t, comments c
WHERE t.id = c.thread_id
ORDER BY c.date DESC

Спасибо

0 голосов
/ 07 августа 2009
select * from Threads t
    inner join Comments c
        on t.id = c.Thread_id
order by c.date
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...