|
|
|
use parent field value in a subquery
|
|||
|---|---|---|---|
|
#18+
Есть такой запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Как передать c.id в подзапросы где sc.supplier_id=46 (надо sc.supplier_id=c.id) и sc.payer_id=46 (надо sc.payer_id=c.id). Сейчас запрос работает но выдает верные значения только для контрагента 46, надо чтоб выдавал и для 514 соответственно. Уже голову всю сломал. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 13:06:02 |
|
||
|
use parent field value in a subquery
|
|||
|---|---|---|---|
|
#18+
maxtorchel, передать - никак. Ибо вложенный запрос (derived table) не может быть коррелированным, а apply-подзапросов в MySQL пока нет. поэтому единственный вариант -полностью переписать запрос, пересмотрев логику его работы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 13:30:14 |
|
||
|
use parent field value in a subquery
|
|||
|---|---|---|---|
|
#18+
похоже вот так заработало: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 13:49:52 |
|
||
|
use parent field value in a subquery
|
|||
|---|---|---|---|
|
#18+
Появилась проблема с данным запросом, я его вставил в триггер AFTER UPDATE и теперь мне постоянно выдает ошибку: Код: sql 1. Как от нее избавиться, начитался про дедлоки но всеравно не догоняю как найти что имеенно где блокируется. Запрос немного изменил но не думаю что это принципиально: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 12:52:46 |
|
||
|
use parent field value in a subquery
|
|||
|---|---|---|---|
|
#18+
передать - никак. Ибо вложенный запрос (derived table) не может быть коррелированным, а apply-подзапросов в MySQL пока нет. Впервые такое слышу. Но можно сделать во FROM некорелированный запрос с группировкой по sc.supplier_id (возможно и с фильтром по нужным sc.supplier_id), а пото JON-ить его с остальным запросом по sc.supplier_id. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 13:06:49 |
|
||
|
use parent field value in a subquery
|
|||
|---|---|---|---|
|
#18+
БД кcтати innodb, и еще вопрос как ускорить данный запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 14:13:25 |
|
||
|
use parent field value in a subquery
|
|||
|---|---|---|---|
|
#18+
maxtorchelкак ускорить данный запрос?Избавьтесь от конструкций IN (SELECT ... ) И пересмотрите необходимость LEFT JOIN-ов. Некоторые из них явно можно заменить на просто JOIN. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 14:16:44 |
|
||
|
use parent field value in a subquery
|
|||
|---|---|---|---|
|
#18+
хм, заменил in на exists и почти все leftы убрал и запрос стал выполняться даже чуть медленне(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 14:58:27 |
|
||
|
use parent field value in a subquery
|
|||
|---|---|---|---|
|
#18+
maxtorchel, показывайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 15:05:21 |
|
||
|
use parent field value in a subquery
|
|||
|---|---|---|---|
|
#18+
вот так сделал: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Медленнее наверно я погорячился, скорее также, разница в рамках погрешности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 15:06:58 |
|
||
|
use parent field value in a subquery
|
|||
|---|---|---|---|
|
#18+
maxtorchel, что такое NEW.id и почему остался самый последний LEFT JOIN (это что первое в глаза бросается)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 15:11:16 |
|
||
|
use parent field value in a subquery
|
|||
|---|---|---|---|
|
#18+
NEW.id это id записи в триггере после обновления, а таблица rel_bill_manifest служит для связи bill и manifest, связь many to many и мне нужно выбрать все bill которые есть у manifest-ов которые есть у данной bill. например, у данной bill есть 2 manifest, мне нужны все bill, которые есть у данных manifest-ов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 17:09:25 |
|
||
|
use parent field value in a subquery
|
|||
|---|---|---|---|
|
#18+
вобщем вроде как последний left тоже же нужен) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 17:17:08 |
|
||
|
use parent field value in a subquery
|
|||
|---|---|---|---|
|
#18+
maxtorchelвобщем вроде как последний left тоже же нужен)Ну как же? Условие b.id=rel1.bill_id исключает возможность того, чтобы в выборку попали записи из rel, которых нет в rel1. Т.е. LEFT теряет весь смысл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 17:48:01 |
|
||
|
use parent field value in a subquery
|
|||
|---|---|---|---|
|
#18+
в итоге вот такой запрос получился: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Думаю, что лучше уже не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 13:56:12 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38609752&tid=1834980]: |
0ms |
get settings: |
6ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 324ms |

| 0 / 0 |
