Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
2-1157025359
Neket
2006-08-31 15:55
2006.09.17
Скрытие программы от посторонних глаз


15-1156837418
dom2
2006-08-29 11:43
2006.09.17
Как записывать...


2-1156745800
Priest
2006-08-28 10:16
2006.09.17
Как получить температуру материнской платы


3-1152093224
term1t
2006-07-05 13:53
2006.09.17
Oracle to FoxPro


2-1156749072
shake
2006-08-28 11:11
2006.09.17
выборка из dbgrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский