|
|
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
Есть 2 таблицы Табл1 (ID,Value1) - записей немного Табл2 (Value2) - Записей много. и функция F Надо из Табл2 отобрать такие, что Value1=F(Value2) Сделано криво: strSQL1=select F(Табл2) as Result from Табл2 strSQL2=select (Табл1.ID) where (Табл1.Value1) in (strSQL1) Как бы Вы красиво решили эту проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 14:45 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
Corr "Из табл1 отобрать такие" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 14:48 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 15:02 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
Хотелось бы сделать типа select Табл1.ID from Табл1 innerJoin Табл2 on Табл1.Value1=F(Табл2.Value2) Но такое, наверное, работать не будет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 15:03 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
select Табл1.ID from Табл1, Табл2 where Табл1.Value1=F(Табл2.Value2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 15:06 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
2 ящериц-варан А ты попробуй и скажи, будет работать или нет Блин, сложно что-ли уже написанный (в форум) вопрос в аксес засунуть? Прежде чем вопросы на весь инет задавать? ахереть легче Блин, что за люди живут в поселке андреевка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 15:09 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
Join будет быстрее работать чем where? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 15:09 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
Лох Позорный, Да, лодыри тут, в основном, проживают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 15:14 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
VIG, Владимир Саныч, спасибо, завтра потестирую на скорость все варинты. Проблема в том, что с подзапросом работает очень медленно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 15:17 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
Нескромный вопрос Varan=wara??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 15:19 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
VIG Да, чтоб не было вопросов насчет половой принадлежности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 15:21 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
Во прикол вариант VIG работает в 20 раз быстрее! Данные о тестовых таблицах: Табл 1 - 256 строк Табл 2 - 13 128 строк Вариант1 (42 секунды) Код: plaintext 1. 2. 3. 4. 5. 6. 7. Вариант 2 (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. Интересно, почему такая разница, ведь ничего, по сути, не изменилось!? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2003, 19:09 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
а вариант Саныча проверял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2003, 19:23 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
я думаю join будет работать также как и where, пользоваться индексами в подзапросах/приджоиненных таблицах, а in ими пользоваться не может, поэтому работает медленно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2003, 19:29 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
впрочем, насчет индексов я погорячился... там же F(ttt), какой индекс.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2003, 19:30 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
Вариант Саныча - вообще не то, что надо, выдает :-( (Хотя и быстро) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2003, 19:37 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
Пардон, Варинт Саныча - 2 минуты 50 секунд ( возвращает то, что надо), но он проще, надо было его и делать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2003, 19:40 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
Хотелось бы услышать комментарии - из за чего такая разница (в 20 раз) в скорости? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2003, 19:51 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
Запрос с IN ,как правило,всегда работает медленнее,чем с JOIN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2003, 20:23 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
Так как правило или всегда ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2003, 20:28 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
С чем связана такая ошеломительная разница? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2003, 20:28 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
Так как правило или всегда? Забыл написать-нужное подчеркнуть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2003, 22:10 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
Короче, не знает никто. Я опечален :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2003, 10:24 |
|
||
|
Join не по всему полю
|
|||
|---|---|---|---|
|
#18+
Есть мнение: видимо в первом варианте он вызывает подзапрос для каждой строки и потому тормозит. а во-втором варианте у тебя Ас запрос, который либо вызывается однажды, либо (что скорее всего) хорошо кэшируется. Отсюда и такая разница. имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2003, 10:42 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1757&tid=1679681]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
23ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 306ms |

| 0 / 0 |
