DISTINCT и сортировка по дате

pweb

Guest
DISTINCT и сортировка по дате

Есть таблица :
CREATE TABLE ArticleFeed (
aid mediumint(8) unsigned NOT NULL default '0',
dt timestamp(14) NOT NULL,
)

Делаю запрос:
SELECT aid FROM ArticleFeed ORDER BY dt DESC
результат:
1040
1038
1040
1040
982
...
Теперь делаю запрос:
SELECT DISTINCT aid FROM ArticleFeed ORDER BY dt DESC
результат:
1038
1040
1035
1024
807
...

Результаты по сортировке не совпадают ;( Как решить?
 

Romantik

TeaM PHPClub
Заметь, они у тебя и без DISTINCT несортируются, как ты хочешь!
ORDER BY ИмяПоляЭтихЧисел
 

tony2001

TeaM PHPClub
ты сортируешь по одному полю, выбираешь другое и удивляешься разным результатам.
я не вижу ничего удивительного - ты смешал все в кучу и что-то пытаешься понять.
 

pweb

Guest
Автор оригинала: tony2001
ты сортируешь по одному полю, выбираешь другое и удивляешься разным результатам.
я не вижу ничего удивительного - ты смешал все в кучу и что-то пытаешься понять.
мне кажется вы немного ошибаетесь ;) поле. по какому сортируем, необязательно указывать в SELECT.
и первый запрос выводит то, что надо:
SELECT aid,dt FROM `ArticleFeed` ORDER BY `dt` DESC
результат:
1040 20030116134639
1038 20030116134024
1040 20030116124845
1040 20030116124444
982 20030116122411
...

ваши комментария?
 

tony2001

TeaM PHPClub
>мне кажется вы немного ошибаетесь поле. по какому сортируем, необязательно указывать в SELECT.
а я сказал, что обязательно?

DISTINCT убирает записи, где повторяется поле.
у тебя dt повторяется и порядок aid меняется.
доступно?
 

Demiurg

Guest
второй тоже ..
Ты скажи лучше на словах, что тебе надо получить.
 

shingrus

Guest
Автор оригинала: pweb
мне кажется вы немного ошибаетесь ;) поле. по какому сортируем, необязательно указывать в SELECT.
и первый запрос выводит то, что надо:
SELECT aid,dt FROM `ArticleFeed` ORDER BY `dt` DESC
результат:
1040 20030116134639
1038 20030116134024
1040 20030116124845
1040 20030116124444
982 20030116122411
...

ваши комментария?
у тебя все правильно работает, и mysql делает то, что ты просишь, сначала выбрать уникальные aid, затем отсортировать по dt
 

pweb

Guest
Мне нужно вывести уникальные aid, отсортирвоанные по dt DESC.

2tony: а мне казалось, что DISTINCT убирает только повторяющиеся записи в результате SELECT...
 

tony2001

TeaM PHPClub
>а мне казалось, что DISTINCT убирает только повторяющиеся записи в результате SELECT...
ты ошибался речь идет о поле, а не об уникальной записи записи.
 

Demiurg

Guest
>Мне нужно вывести уникальные aid, отсортирвоанные по dt DESC.
и какой же dt брать для aid = 1040 ?
 

pweb

Guest
Автор оригинала: Demiurg
>Мне нужно вывести уникальные aid, отсортирвоанные по dt DESC.
и какой же dt брать для aid = 1040 ?
есть таблица с данными, структуру я описал. Задачу свою я описал, бьюсь уже больше часа, мозги запухли, и не варят, поэтому и в форум написал (обычно только читаю)...
 

Demiurg

Guest
>мозги запухли, и не варят
отдохни, потом пойми, что тебе надо, и снова в бой.
 

pweb

Guest
Автор оригинала: Demiurg
>Мне нужно вывести уникальные aid, отсортирвоанные по dt DESC.
и какой же dt брать для aid = 1040 ?
должно получиться так:
1040 20030116134639
1038 20030116134024
982 20030116122411
 
Сверху