|
|
|
Снизить derived таблицы в запросе
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Таблиц несколько, но для упрощения привожу пример для одной таблице: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. хочу получить goods_amount для всех goods_id у которых максимальны две колонки docdate и docOrderInDateGroup в случае примера хочу результат: Код: sql 1. 2. 3. 4. 5. 6. 7. Дошел до такого запроса но дальше не смог: Код: sql 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. результат хороший но что-то мне подсказывает что можно улучшить запрос. Помогите если можно. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2014, 16:40:43 |
|
||
|
Снизить derived таблицы в запросе
|
|||
|---|---|---|---|
|
#18+
Удалось убрать один INNER JOIN хотя советы форума опять приветствуются. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2014, 18:04:10 |
|
||
|
Снизить derived таблицы в запросе
|
|||
|---|---|---|---|
|
#18+
Avtopic, F.A.Q. по теме уже читал? Но в целом, твою задачу вообще можно решить без каких бы то ни было derived-таблиц, одним линейным агрегатным запросом... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2014, 05:02:56 |
|
||
|
Снизить derived таблицы в запросе
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. || *id* || *select_type* || *table* || *type* || *possible_keys* || *key* || *key_len* || *ref* || *rows* || *Extra* || || 1 || PRIMARY || x1 || ALL || || || || || 12 || Using where; Using temporary; Using filesort || || 3 || DEPENDENT SUBQUERY || x3 || ALL || || || || || 12 || Using where || || 2 || DEPENDENT SUBQUERY || x2 || ALL || || || || || 12 || Using where || Пробуй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2014, 15:47:04 |
|
||
|
Снизить derived таблицы в запросе
|
|||
|---|---|---|---|
|
#18+
Поспешил. Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2014, 15:56:23 |
|
||
|
Снизить derived таблицы в запросе
|
|||
|---|---|---|---|
|
#18+
Добрый Э - ЭхAvtopic, F.A.Q. по теме уже читал? Но в целом, твою задачу вообще можно решить без каких бы то ни было derived-таблиц, одним линейным агрегатным запросом... :) И, где вы видите там похожую задачу? Мне надо выборка по максимуму одной колонки, в котором еще нужно выбрать по максимуму из другой колонки nwarapПоспешил. Код: sql 1. 2. 3. Здесь нет условия для максимального docdate ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2014, 16:50:14 |
|
||
|
Снизить derived таблицы в запросе
|
|||
|---|---|---|---|
|
#18+
попробуйте мой первый вариант AvtopicДобрый Э - ЭхAvtopic, F.A.Q. по теме уже читал? Но в целом, твою задачу вообще можно решить без каких бы то ни было derived-таблиц, одним линейным агрегатным запросом... :) И, где вы видите там похожую задачу? Мне надо выборка по максимуму одной колонки, в котором еще нужно выбрать по максимуму из другой колонки nwarapПоспешил. Код: sql 1. 2. 3. Здесь нет условия для максимального docdate ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2014, 18:01:04 |
|
||
|
Снизить derived таблицы в запросе
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2014, 18:32:43 |
|
||
|
Снизить derived таблицы в запросе
|
|||
|---|---|---|---|
|
#18+
nwarap , Спасибо! ваш запрос работает правильно, но Вот это ваш запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. а, вот это мой Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. разница между ними только то, что derived таблицы в моем запросе, заменились на SUBQUERY в вашем, что не лучше а хуже. // ------------------ Akina , Спасибо! проверю как работает по быстроте из-за используемых текстовых функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2014, 19:34:14 |
|
||
|
Снизить derived таблицы в запросе
|
|||
|---|---|---|---|
|
#18+
Avtopicпроверю как работает по быстроте из-за используемых текстовых функции.Это шаблон. В реальном запросе следует внести под-подзапрос, отбирающий строго нужный пул и делающий пред-отбор по первому полю сортировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2014, 20:49:22 |
|
||
|
Снизить derived таблицы в запросе
|
|||
|---|---|---|---|
|
#18+
AvtopicИ, где вы видите там похожую задачу?Твоя задача и Ф.А.К. - один в один. Количество критериев отбора первой-последней строки влияет лишь на количество и вид условий, но не на алгоритм решения задачи. А наиболее распространенные алгоритмы в том Ф.А.К.е как раз и описаны. Если ты этого не видишь, то мне остается лишь посочувствовать тебе. З.Ы. Однопроходный вариант без подзапросов и деривед-таблиц даже приводить не буду, боюсь твой мозг не вынесет такого насилия над ним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2014, 05:01:39 |
|
||
|
|

start [/forum/topic.php?fid=47&tid=1835149]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
130ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 189ms |
| total: | 381ms |

| 0 / 0 |
