|
Можно ли упростить запрос?
|
|||
---|---|---|---|
#18+
Имеем 3 таблицы: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Код: plaintext 1. 2. 3. 4. 5.
я написал вот так: Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2004, 18:51 |
|
Можно ли упростить запрос?
|
|||
---|---|---|---|
#18+
What if to use WITH ? It will be two 'views', but I don't know a difference between WITH and subquery in performance. Explain might help to chose. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2004, 19:48 |
|
Можно ли упростить запрос?
|
|||
---|---|---|---|
#18+
Я полагаю лучше использовать не left а full, в вашем случае это равносильные конструкции, а отработает быстрее ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2004, 19:56 |
|
Можно ли упростить запрос?
|
|||
---|---|---|---|
#18+
Попробуй так: select t1.id, sum(t2.amount2), sum(t3.amount3) from t1 left outer join t2 on t1.id=t2.id left outer join t3 on t1.id=t3.id group by t1.id ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2004, 10:01 |
|
Можно ли упростить запрос?
|
|||
---|---|---|---|
#18+
2mike_x :) не так всё просто. В твоём запросе получается декартово произведение. Попробуй сам - увидишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2004, 12:11 |
|
Можно ли упростить запрос?
|
|||
---|---|---|---|
#18+
По крайней мере от одного подзапроса можно избавиться Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2004, 12:16 |
|
Можно ли упростить запрос?
|
|||
---|---|---|---|
#18+
2 gardenman Почему быстрее? 2 all В общем лучше никто не напишет похоже. Ладно, будем пользоваться как было. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2004, 12:29 |
|
Можно ли упростить запрос?
|
|||
---|---|---|---|
#18+
2 riman Я сам не понимаю почему быстрее. У меня была схожая ситуация. Я долго этспериментировал, оказалось что с full быстрее, причем на много. В планах запросов никаких отличий не увидел. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2004, 12:34 |
|
Можно ли упростить запрос?
|
|||
---|---|---|---|
#18+
Попробуй еще вот так: select t1.id, (select sum(t2.amount2) from t2 where t1.id=t2.id), (select sum(t3.amount3) from t3 where t1.id=t3.id) from t1 Хотя не очень верится, что будет быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2004, 17:36 |
|
|
start [/forum/topic.php?fid=43&msg=32509662&tid=1606277]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
142ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
90ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 290ms |
0 / 0 |