Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

MySQL. Вложенные запросы


Дмитрий Д. ©   (2006-07-14 16:13:00) 

Пытаюсь выполнить запрос:
SELECT Message_ID FROM Message38 WHERE Priority < (SELECT Priority FROM Message38 WHERE Message_ID=4)

В результате ошибка синтаксиса :(
Думаю смысел ясен, что надо получить. На сервере стоит MySQL 4.1


Johnmen   (2006-07-14 16:40:00) [1]

Что-то типа того
SELECT T1.Message_ID
FROM Message38 T1, Message38 T2
WHERE (T1.Priority < T2.Priority) AND (T2.Message_ID=4)


Ломброзо   (2006-07-14 16:34:00) [2]

Никак. Только через сохранение временной переменной в вызывающем коде.

Хотя... Вроде бы как там есть что-то вроде временных параметров, с префиксом "@". Точно не помню... пошукайте в документации. Суть в том, что на сервер можно послать пакет команд через точку с запятой и сохранять промежуточные результаты в этих вот параметрах.


Дмитрий Д.   (2006-07-14 16:30:00) [3]

Упс, извиняюсь! На срвере стоит MySQL 4.0.27
Соответственно вложенные запросы не поддерживаются :-( Прошляпил...
Тогда как переписать это выражение, чтобы оно работало на данной версии?
К сожалению я не силён во всяческих объединения типа UNION, INNER JOIN и т.д.


Ломброзо   (2006-07-14 16:27:00) [4]

>В запросе неоднозначность - т.е. вместо одного значения подзапрос молжет
>венрнуть несколько.

Не факт. Эта ошибка возникнет только на этапе исполнения, если подзапрос действительно возвращает несколько записей.

А что с версией MySQL? Подзапросы поддерживаются только начиная с версии 4.1.7.


Desdechado   (2006-07-14 16:25:00) [5]

А через соединение таблиц не получится?


Johnmen   (2006-07-14 16:21:00) [6]

Текст ошибки?


MsGuns   (2006-07-14 16:21:00) [7]

В запросе неоднозначность - т.е. вместо одного значения подзапрос молжет венрнуть несколько.
ИМХО, следует использовать конструкцию EXIST или IN


Наверх

Титульная страница Поиск, карта сайта Написать письмо