Форум: "Базы";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];
ВнизMySQL. Вложенные запросы Найти похожие ветки
← →
Дмитрий Д. (2006-07-14 16:13) [0]Пытаюсь выполнить запрос:
SELECT Message_ID FROM Message38 WHERE Priority < (SELECT Priority FROM Message38 WHERE Message_ID=4)
В результате ошибка синтаксиса :(
Думаю смысел ясен, что надо получить. На сервере стоит MySQL 4.1
← →
Johnmen © (2006-07-14 16:21) [1]Текст ошибки?
← →
MsGuns © (2006-07-14 16:21) [2]В запросе неоднозначность - т.е. вместо одного значения подзапрос молжет венрнуть несколько.
ИМХО, следует использовать конструкцию EXIST или IN
← →
Desdechado © (2006-07-14 16:25) [3]А через соединение таблиц не получится?
← →
Ломброзо © (2006-07-14 16:27) [4]>В запросе неоднозначность - т.е. вместо одного значения подзапрос молжет
>венрнуть несколько.
Не факт. Эта ошибка возникнет только на этапе исполнения, если подзапрос действительно возвращает несколько записей.
А что с версией MySQL? Подзапросы поддерживаются только начиная с версии 4.1.7.
← →
Дмитрий Д. (2006-07-14 16:30) [5]Упс, извиняюсь! На срвере стоит MySQL 4.0.27
Соответственно вложенные запросы не поддерживаются :-( Прошляпил...
Тогда как переписать это выражение, чтобы оно работало на данной версии?
К сожалению я не силён во всяческих объединения типа UNION, INNER JOIN и т.д.
← →
Ломброзо © (2006-07-14 16:34) [6]Никак. Только через сохранение временной переменной в вызывающем коде.
Хотя... Вроде бы как там есть что-то вроде временных параметров, с префиксом "@". Точно не помню... пошукайте в документации. Суть в том, что на сервер можно послать пакет команд через точку с запятой и сохранять промежуточные результаты в этих вот параметрах.
← →
Johnmen © (2006-07-14 16:40) [7]Что-то типа того
SELECT T1.Message_ID
FROM Message38 T1, Message38 T2
WHERE (T1.Priority < T2.Priority) AND (T2.Message_ID=4)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.051 c