![]() |
|
Модераторы: skyboy |
![]()
|
|
| 3,14 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: нет Всего: 24 |
Что то тем как то мало в данной ветке... Надеюсь что всё таки народ сюда заходит...
Есть две таблицы: em_configs: id: Integer name: Varchar(100) load: Varchar(100) em_boxes: id: Integer ip_id: Integer config_id: Integer descr: Varchar(200) Между ними есть связь один ко многим: em_configs.id=em_boxes.config_id Нужно составить запрос, к-ый бы выбирал для каждой записи из em_configs ещё и минимальное значение ip_id из em_boxes. выполняю следующий запрос:
Вываливается ошбка:
Тот же запрос, с теми же таблицами для MySQL работает. Это уменя ошибка с запросом или база неверно работает? -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
||||
|
|||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
не может быть. должно выдавать ошибку. или у тебя структура таблиц в MySQL-варианте все же отличается. переводится так:
Т.е. у тебя есть em_configs.id и em_boxes.id ты говоришь: т.е. "группируй по полю с именем id". а по какому из двух - не говоришь. укажи таблицу кроме имени поля и будет тебе счастье. раздел только создан. |
|||
|
||||
| 3,14 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: нет Всего: 24 |
Так?
ЗЫ: переводить сообщения не нужно, буржуйский у меня на уровне разговорного. -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
||||||
|
|||||||
| Kangaroo |
|
|||
|
AA - Aussie Animal ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2042 Регистрация: 7.10.2006 Где: US Репутация: нет Всего: 104 |
Нельзя писать в селекте c.*, если ты группируешь.
Можна так:
-------------------- Lost.... |
|||
|
||||
| 3,14 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: нет Всего: 24 |
Запрос:
Та же самая ошибка:
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
||||
|
|||||
| 3,14 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: нет Всего: 24 |
Да вроде не отличается:
Проверил все три варианта с MySQL:
все нормально работают... Это сообщение отредактировал(а) 3,14 - 25.3.2008, 10:57 -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
||||||
|
|||||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
||||
|
||||
| 3,14 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: нет Всего: 24 |
Попробовал вместо GROUP BY использовать вложенный подзапрос:
Опять же, с MySQL всё прекрасно работает, а вот с apache derby валит ошибку:
Похоже что придётся всё таки менять код под использование другой базы... -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
||||
|
|||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
подзапросы - этол ты зря.
то, что я приводил, попробовал? |
|||
|
||||
| 3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: нет Всего: 24 |
почему? да:
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
| Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 2 Всего: 42 |
Не может этот запрос у тебя работать. По определению. Проверь еще раз!
Поясняю. Все выражения внутри SELECT ..... FROM должны быть либо агрегатными функциями (min, max, sum, count) либо обязаны быть перечислены в GROUP BY. Т.е. вот это должно работать, а то что ты приводил - работать не должно. Только так.
О том, почему оно работает в MySQL читать тут MySQL extends the use of GROUP BY to allow selecting fields that are not mentioned in the GROUP BY clause Это сообщение отредактировал(а) Fortop - 25.3.2008, 23:44 -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
| 3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: нет Всего: 24 |
Проверил ещё раз, не работает
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
| Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 2 Всего: 42 |
Алло! Найди три отличия между тем что тебе говорят
и тем что ты делаешь!
Добавлено через 1 минуту и 24 секунды P.S. Еще раз не прочтешь, что тебе пишут... заминусую репутацию. Надоело. -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
| 3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: нет Всего: 24 |
Fortop, сорри за невнимательность. Твой вариант действительно работает.
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 2 Всего: 42 |
Не вопрос.
Просто иногда стоит читать ошибки, которые тебе выдает система. А о том почему твой запрос срабатывал в MySQL - выше есть ссылка. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |