Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
15.05.2014, 15:10
|
|||
---|---|---|---|
|
|||
Выборка из таблицы с первичным ключем из двух полей |
|||
#18+
Задача в следующая, есть таблица: Id1 Id2 Qty 1 1 10 1 2 10 1 3 20 2 1 20 2 2 20 2 3 30 3 1 40 3 2 50 Поля id1, id2 составляют первичный ключ. Следует написать один запрос (т.е. без предварительных запросов, сохраняющих данные где-нибудь в переменных или временных таблицах, без циклов и проч.) , возвращающий по одной записи для каждого значения id1, встречающегося в исходной таблице, при этом, если в исходной таблице есть несколько строк с таким значением id1, то возвращается строка с минимальным для этого значения id1 значением поля Qty. Если таких строк для данного id1 будет несколько, годится любая из них. Мне на ум пришло только такое решение: select t.id1, max (t_.id2) , t.qty from (select id1, min(qty) qty from test_table group by id1) t inner join test_table t_ on (t.id1 = t_.id1 and t.qty = t_.qty) group by t.id1, t.qty Является ли данное решение верным? Ну тоесть результат верный, но можно ли сказать, что я не использую предварительных запросов? Верные результаты для приведенной таблицы? Id1 Id2 Qty 1 1 10 2 1 20 3 1 40 Id1 Id2 Qty 1 2 10 2 1 20 3 1 40 Id1 Id2 Qty 1 1 10 2 2 20 3 1 40 Id1 Id2 Qty 1 2 10 2 2 20 3 1 40 Модератор: Предупреждение за кросс-пост. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.05.2014, 16:46
|
|||
---|---|---|---|
Выборка из таблицы с первичным ключем из двух полей |
|||
#18+
Код: sql 1. 2. 3.
Не усложняй сверх необходимого. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=54&mobile=1&tid=2008795]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 166ms |
0 / 0 |