Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];

Вниз

SQL - запрос не работает   Найти похожие ветки 

 
Meson   (2003-05-19 23:45) [0]

Есть такой запрос:

select
t1.f1,
(select f
from (select min(f2) f
from t2) t) as f
from t1
where f1=1

этот запрос работает вполне исправно.

select
t1.f1,
(select f
from (select min(f2) f
from t2
WHERE f2=t1.f1 ) t) as f
from t1
where f1=1

А этот не хочет.
В секции WHERE пришет t1.f1 -- не известно

Кто скажет в чем дело?


 
Ihor Osov'yak   (2003-05-20 00:36) [1]

Чего-то я не вьехал.. Зачем так мудро? Какой движок? Зачем там одиночное t?

Нельзя ли попроще, к примеру

select
t1.f1,
(select min(f2)
from t2
WHERE f2=t1.f1 ) as f
from t1
where f1=1


 
Mesonbareon   (2003-05-20 13:43) [2]

База - Оракл.

Так мудрено получилось из-за того, что я все несущественное просто выбросил, дабы не заслоняло суть дела.

В реальном запросе (около 500 строк) "одиночное t" возвращает упорядоченный (по дате) список полей из которого затем извлекается самая свежая запись (... where RowNum = 1).

Разумеется запрос можно переформулировать, возможно с потерей в элегантности (читабельности) и скорости. Дело не в этом.
Вопрос в том, почему внутренний подзапрос не распознает полей из внешних по отношению к нему запросов. Ведь должен как будто?


 
Ihor Osov'yak   (2003-05-21 10:38) [3]

> Ведь должен как будто?

Должен как-будто.. Вообще-то я не с ораклов. В IB,MSSQL с такой конструкцией проблем нет. www.sql.ru - там есть форумы, сортированные по движкам, и, кажется, втч по ораклу..



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.007 c
14-26785
Juster~
2003-05-23 12:44
2003.06.09
НОВАЯ ИНФОРМАТИКА


9-26325
Dock
2002-12-14 18:43
2003.06.09
Звук в играх.


3-26335
gonta
2003-05-20 10:58
2003.06.09
Обработка SQL запроса в потоке


6-26636
EvgeniyR
2003-04-09 09:26
2003.06.09
Болталка в локальной сетке


9-26326
Ketmar
2002-12-22 16:21
2003.06.09
всем





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский