|
SQLite подзапрос
|
|||
---|---|---|---|
#18+
Есть Необходимость в запросе такого вида? Код: plaintext 1. 2. 3. 4.
Конечно этот запрос можно привести к виду: Код: plaintext 1. 2. 3. 4.
Что тут можно поделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2008, 04:58 |
|
SQLite подзапрос
|
|||
---|---|---|---|
#18+
misha mikeПод Oracle такое работает нормально.Не твоя правда. В Oracle такое по определению работать не может, ибо в нем не поддерживаются коррелированные встроенные представления. Глючный релиз 10.2.0.1 (кажись, точно не помню) не в счет. Тынц , если что misha mikeЧто тут можно поделать?Открыть для себя внешние соединения, коррелированные подзапросы, [NOT] EXISTS-подзапросы ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2008, 05:24 |
|
SQLite подзапрос
|
|||
---|---|---|---|
#18+
Бабичев Сергей misha mikeПод Oracle такое работает нормально.Не твоя правда. В Oracle такое по определению работать не может, ибо в нем не поддерживаются коррелированные встроенные представления. Глючный релиз 10.2.0.1 (кажись, точно не помню) не в счет. Тынц , если что Да, действительно, значит Oracle вычеркиваем. Но где-то я такое точно делал без проблем. misha mikeЧто тут можно поделать?Открыть для себя внешние соединения, коррелированные подзапросы, [NOT] EXISTS-подзапросы А можно для идиотов разжевать чем тут помогут внешние соединения (присоедененных таблиц типа B в общем случае несколько) и особенно [NOT] EXISTS-подзапросы? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2008, 14:08 |
|
SQLite подзапрос
|
|||
---|---|---|---|
#18+
misha mikeНо где-то я такое точно делал без проблем.Единственная база которое такое может делать это SQL Anywhere начиная с 9-ой версии и только при наличии специального типа связки таблиц - LATERAL. В общем случае запросы такого вида невозможны. misha mikeЧто тут можно поделать?Открыть для себя внешние соединения, коррелированные подзапросы, [NOT] EXISTS-подзапросы А можно для идиотов разжевать чем тут помогут внешние соединения (присоедененных таблиц типа B в общем случае несколько) и особенно [NOT] EXISTS-подзапросы?[/quot] И вообще, чем тебя не устраивает простой селект: Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2008, 18:37 |
|
SQLite подзапрос
|
|||
---|---|---|---|
#18+
misha mikeА можно для идиотов разжевать чем тут помогут внешние соединения (присоедененных таблиц типа B в общем случае несколько) и особенно [NOT] EXISTS-подзапросы?С Oracle знаком? Давай я тебе примерчик забацаю, надеюсь, ты поймешь о чем идет речь... 1) Использование NOT EXISTS-подзапроса: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38.
2) Использование левого внешнего соединения: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
3) Использование скалярного коррелированного подзапроса во фразе WHERE: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
Можно ещё придумать пару-тройку гибридных вариантов на основе вышеприведенных... Так что, выбирай себе вариант в соответствии с возможностями своего сервера. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2008, 05:55 |
|
SQLite подзапрос
|
|||
---|---|---|---|
#18+
White OwlИ вообще, чем тебя не устраивает простой селект: Код: plaintext 1. 2. 3.
Возможно тем, что кроме колонки DATA из таблицы B нужно извлечь и другие колонки (получить данные на последнюю дату). Это во-первых. Ну и во-вторых, на больших объемах данных группировка может сильно просадить производительность сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2008, 06:00 |
|
SQLite подзапрос
|
|||
---|---|---|---|
#18+
Бабичев СергейВозможно тем, что кроме колонки DATA из таблицы B нужно извлечь и другие колонки (получить данные на последнюю дату). Это во-первых. Ну и во-вторых, на больших объемах данных группировка может сильно просадить производительность сервера.А он нигде про другие поля из второй таблицы не говорил. А если так волнует производительность, можно еще поиграться с временными таблицами. Что-то вроде: Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2008, 17:53 |
|
|
start [/forum/topic.php?fid=54&tid=2009493]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 149ms |
0 / 0 |