|
|
|
| При выводе данных из таблицы topics нужно их сортировать по таблице posts.
Т.е. если в таблице posts появилась навоя запись, то тема, к которой относится пост должна поднятся вверх.
Я пробовал
SELECT topics.*, posts.id AS pid
FROM topics, posts
ORDER BY pid DESC
|
но это не работает. | |
|
|
|
|
|
|
|
для: Unknown
(20.07.2007 в 15:26)
| | >При выводе данных из таблицы topics нужно их сортировать по таблице posts.
Не понятно по какому полю должна проводиться сортировка... | |
|
|
|
|
|
|
|
для: cheops
(20.07.2007 в 16:00)
| | По полю id из таблицы posts. | |
|
|
|
|
|
|
|
для: Unknown
(20.07.2007 в 15:26)
| | У Вас таблицы не связаны никаким условием. Напишите условие соединения таблиц, иначе получите кашу. | |
|
|
|
|
|
|
|
для: Trianon
(20.07.2007 в 17:13)
| | Table `posts` :
`id` - уникальный ключ
`post` - сообщение
`tid` - внешний ключ, определяет к какой теме относится пост
`time` - time of added
- - - - -
Table `topics` :
`id` - primary key
`topic` - topic name
- - - - - -
Хочу сделать сортировку тем по уникальным ключам сообщений. | |
|
|
|
|
|
|
|
для: Unknown
(20.07.2007 в 17:30)
| |
SELECT topics.*, posts.id AS pid
FROM topics, posts
where topics.id=posts.tid
ORDER BY pid DESC
|
| |
|
|
|
|
|
|
|
для: Woland
(20.07.2007 в 17:37)
| |
SELECT topics.*, posts.id AS pid
FROM topics, posts
where topics.id=posts.tid
ORDER BY pid DESC
|
Если последние 5 постов относятся к одной теме, то она будет повторятся 5 раз.
| |
|
|
|
|
|
|
|
для: Unknown
(20.07.2007 в 17:45)
| | Как я понимаю, тогда должна появиться последняя запись, а предыдущие просто сместятся вниз? Тогда стоит попробовать
SELECT topics.*, posts.id AS pid
FROM topics, posts
where topics.id=posts.tid
group by topics.id
ORDER BY pid DESC
|
| |
|
|
|
|
|
|
|
для: Woland
(20.07.2007 в 18:04)
| | >Как я понимаю, тогда должна появиться последняя запись, а предыдущие просто сместятся вниз? Тогда стоит попробовать
>
>SELECT topics.*, posts.id AS pid
>FROM topics, posts
>where topics.id=posts.tid
>group by topics.id
>ORDER BY pid DESC
>
|
Я уже пробовал.
Тогда темы сортируются в порядке добавления. | |
|
|
|
|
|
|
|
для: Unknown
(20.07.2007 в 18:11)
| | >Я уже пробовал.
>Тогда темы сортируются в порядке добавления.
Не совсем понимаю, чем это отличается от необходимого результата. Что должно получиться в результате выполнения запроса? | |
|
|
|
|
|
|
|
для: Woland
(20.07.2007 в 18:16)
| | >>Я уже пробовал.
>>Тогда темы сортируются в порядке добавления.
>
>Не совсем понимаю, чем это отличается от необходимого результата. Что должно получиться в результате выполнения запроса?
Нужно сделать как на этом форуме.
Т.е. если кто-то написал в самую последнею тему , то эта тама должна поднятся в самый верх. | |
|
|
|
|
|
|
|
для: Unknown
(20.07.2007 в 18:22)
| |
SELECT topics.*, posts.id AS pid
FROM topics, posts
where topics.id=posts.tid
group by topics.id
ORDER BY topics.id DESC
|
У меня получилось то, что надо | |
|
|
|
|
|
|
|
для: Woland
(20.07.2007 в 18:53)
| | >
>SELECT topics.*, posts.id AS pid
>FROM topics, posts
>where topics.id=posts.tid
>group by topics.id
>ORDER BY topics.id DESC
>
|
>У меня получилось то, что надо
Этот запрос можно заменить следующим:
SELECT *
FROM topics
ORDER BY id
|
Вы не понимаете о чем я говорю. | |
|
|
|
|
|
|
|
для: Unknown
(20.07.2007 в 19:08)
| | Че так тихо? :)
Trianon, ау. :) | |
|
|
|
|
|
|
|
для: Unknown
(21.07.2007 в 01:42)
| | чиво? :) | |
|
|
|
|
|
|
|
для: Trianon
(21.07.2007 в 01:48)
| | Как быстро откликнулись. :)
Ниче по теме сказать не можете? :) | |
|
|
|
|
|
|
|
для: Unknown
(21.07.2007 в 01:51)
| | сейчас... | |
|
|
|
|
|
|
|
для: Trianon
(21.07.2007 в 02:04)
| |
SELECT topics.*, mpid
FROM topics
JOIN
(SELECT MAX(posts.id) as mpid, topics.id as tpid
FROM topics
LEFT JOIN posts ON tpid=posts.tid
GROUP BY tpid
) AS t2
ON id = tpid
ORDER BY mpid DESC
|
| |
|
|
|
|
|
|
|
для: Trianon
(21.07.2007 в 02:08)
| | Спасибо.
Работает... | |
|
|
|