|
|
|
Проблема с передачей значения в подзапрос.
|
|||
|---|---|---|---|
|
#18+
Приветствую! Не работает следующая конструкция (ее суть - из T2 извлекается самая свежая запись, удовлетворяющая условию, определенному во внешнем запросе): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Пишет, что во внутреннем подзапросе T1.NR не известно. Если условие задать в явном виде: Код: plaintext 1. 2. 3. то все работает вполне исправно. В чем тут дело? PS. Для создания среды тестирования этого запроса можно использовать скрипт: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2003, 23:19:31 |
|
||
|
Проблема с передачей значения в подзапрос.
|
|||
|---|---|---|---|
|
#18+
Inline view is a view created on the fly and just for this statement execution. Another words it is a non-correlated query, while you are trying to use it as a correlated subquery. Use: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. SY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2003, 02:49:02 |
|
||
|
Проблема с передачей значения в подзапрос.
|
|||
|---|---|---|---|
|
#18+
to SY Спасибо. В чем была моя ошибка я понял. Теперь переформулировать запрос - дело техники. Меня смещает другое. Вы говорите о некоррелированном запросе. Мне не знаком этот термин. Это устоявшееся понятие или Вы употребили его для пояснения сути дела? Можете ли Вы дать некую формулировку или ссылку, чтобы не полагаться на интуитивное понимание (повторяю, на интуитивном уровне ситуация более или менее ясна)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2003, 17:15:07 |
|
||
|
Проблема с передачей значения в подзапрос.
|
|||
|---|---|---|---|
|
#18+
From SQL Reference Manual: Oracle performs a correlated subquery when the subquery references a column from a table referred to in the parent statement. A correlated subquery answers a multiple-part question whose answer depends on the value in each row processed by the parent statement. Obviously, non-correlated subquery is one that does not reference a column from a table referred to in the parent statement. You can find references to non-correlated subquery in Tuning Guide: "Complex merging can be used for an IN clause with a non-correlated subquery, as well as for views..." SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2003, 19:36:49 |
|
||
|
Проблема с передачей значения в подзапрос.
|
|||
|---|---|---|---|
|
#18+
Правильно ли я понимаю определение некоррелированного подзапроса? Некоррелированным является такой подзапрос, который не ссылается на колонки из таблиц, упомянутых в основном запросе. Если да, то не понятно почему в примерах 1 и 3 Oracle возвращает вполне разумный результат и лишь в случае 2 не может разрешить таблицу T1? На первый взгляд кажется что во всех трех запросах должен "на лету" строиться View, не ссылающийся на таблицы из основного запроса и использующий лишь в секции where значение поля из внешнего запроса. 1. Подзапрос в секции select Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 2. Подзапрос в секции from Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 3. Подзапрос в секции where Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2003, 01:34:11 |
|
||
|
Проблема с передачей значения в подзапрос.
|
|||
|---|---|---|---|
|
#18+
Becuase INLINE VIEW (subquery in FROM clause) can not be correlarted. And it is quite logical. In SELECT list and WHERE clause you can use column expressions so it is logical to allow correlation. IN FROM clause you list indiviual tables and views - that is why correlation in FROM clause is not allowed. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2003, 17:45:21 |
|
||
|
|

start [/forum/topic.php?fid=52&gotonew=1&tid=1990357]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
184ms |
get topic data: |
9ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 497ms |

| 0 / 0 |
