Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Помогите с SQL запросом


Автор: *eug* 23.11.2003, 14:20
Я пишу такой запрос, но он не работает, исправьте меня пожалуйста:

Код

select distinct table.field1 from table ORDER BY table.field2 desc, table.field3 desc;



Когда без "distincta" всё работает правильно, а мне надо чтобы "field1" не повторялись!

Автор: Secandr 23.11.2003, 14:40
SQL
select table.field1 from topics GROUP BY table.field1 ORDER BY table.field2 desc, table.field3 desc;

Автор: *eug* 23.11.2003, 22:09
А этот запрос не работает!

Автор: Secandr 23.11.2003, 23:09
А что именно не работает?

Автор: *eug* 24.11.2003, 22:33
Secandr
Не группирует правильно!

Автор: Secandr 25.11.2003, 08:18
*eug* У меня в MySQl такой запрос работает. sad.gif

Автор: SVK 25.11.2003, 12:30
*eug* запрос
Цитата
select distinct table.field1 from table ORDER BY table.field2 desc, table.field3 desc;
не корректен по сути: если для одного и того же field1 есть несколько РАЗНЫХ field2 и field3 - то как сортировать?
Здесь нужен GROUP BY и агрегатные функции. Надо сконструировать что-то типа:
Код
select distinct field1, max(field2), min(field3)
from table
group by field1
order by max(field2) desc, min(field3) desc
или (что то же самое)
Код
order by 2 desc, 3 desc
Лишние поля можно игнорировать при выборке.

Автор: *eug* 26.11.2003, 09:27
А можно сделать вложенный запрос и сначала
Код

select table.field1 from table ORDER BY table.field2 desc, table.field3 desc;

А потом
Код

select distinct query.field1 from query;

Если да то как?

Автор: SVK 30.11.2003, 20:31
А это смотря какая база. В ОРАКЛЕ и в Аксессе так и пишем:
Код
select distinct field1
from
(select field1 from table ORDER BY field2 desc, field3 desc)
MySQL не понимает вложенные запросы (пока).

Автор: *eug* 2.12.2003, 23:42
SVK
А мне как раз в MySql и надо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)