![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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