Помогите с mysql запросом

Prolix

Новичок
Помогите с mysql запросом

Дано: 2 таблицы, структура первой (A) - ID, Title, второй (B) - ID, Date, A_ID. A_ID связан с первой базой. Нужно сделать выборку из 2-й базе по дате в обратном порядке, ограничить допустим 5-ю записями, при этом A_ID НЕ ДОЛЖЕН дублироваться.

Пример:
A.DB:
1 A
2 B
3 C
4 D

B.DB:
1 2 2001-12-13 13:11:11
2 4 2001-12-13 14:10:05
3 2 2001-12-14 12:10:03
4 3 2001-12-14 12:17:05
5 3 2001-12-15 12:27:02
6 1 2001-12-15 12:09:01
7 1 2001-12-15 12:17:05

При выборке обнаружтиваем следующие данные из B:
7 1 2001-12-15 12:17:05
5 3 2001-12-15 12:27:02
3 2 2001-12-14 12:10:03
2 4 2001-12-13 14:10:05

Заранее спасибо.
 

Prolix

Новичок
Спасибо за помощь, но...
Как я понимаю, запрос должен быть такого типа:

select distinct A.ID, B.A_ID, B.Date from A,B where B.A_ID=A.ID order by B.Date DESC limit 5;

это не работает

select A.ID, B.A_ID, B.Date from A,B where B.A_ID=A.ID group by B.A_ID order by B.Date DESC limit 5;

не работает правильно тоже
 

Demiurg

Guest
Не работать могут тракторы. А запросы либо выдают ошибку, либо выдают не правильные результаты.
 

Pavel

Guest
А ты не объяснишь чем отличается A.ID от B.A_ID.
А на счет счет запроса - попробуй использовать group by B.A_ID. Только выводи не просто дату, а например max(B.Date) или min.
 

Prolix

Новичок
В общем, я разобрался.

select distinct A.ID, B.A_ID, B.Date from A,B where B.A_ID=A.ID group by B.Date DESC limit 5;

Distinct не работает с order (имелось в виду так, как надо, а синтаксической ошибки нет, конечно), зато с group by работает.

Всем спасибо.
 
Сверху