|
|
|
что-то не получаеться написать update на переназначение связаных записей.
|
|||
|---|---|---|---|
|
#18+
значит ситуация. есть таблица ресурсов resources(number,user_id,c1,c2,......) number - уникальный идентификатор ресурса user_id - ссылка на пользователя которому он назначен(0 если пока что ничейный) c1,c2 - характеристики ресурса и есть список идентификаторов - (аааааа,бббббб,вввввв,гггггг,.....) на 100 елементов. Идентификаторы из списка, это ресурсы которых уже не существует, но в базе данные не актуальные. вот задача, для каждого ресурса из списка, найти ресурс с такимиже характеристиками и ничейный, и назначить его тому же самому пользователю. тоесть в результате получиться, что пользователи владеющие сейчас ресурсом несуществующим, начнут владеть двумя - несуществуещим(из списка) и стакими же характеристиками существующим (не из списка) пробовал так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. лимит один, так как подобный запрос одни и теже новые ресурсы сопоставит с разными старыми и результат получиться глупым. поэтому решил пошагово ити по одному... но сдесь мускл ругаеться, что не верно использован лимит. что-то пока мысли нету как быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 18:27:26 |
|
||
|
что-то не получаеться написать update на переназначение связаных записей.
|
|||
|---|---|---|---|
|
#18+
Совершенно невменяемо. Покажите пример исходных данных и желаемого результата - в том числе демонстрирующий это самое "подобный запрос одни и теже новые ресурсы сопоставит с разными старыми и результат получиться глупым", коего надо избежать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 18:54:21 |
|
||
|
что-то не получаеться написать update на переназначение связаных записей.
|
|||
|---|---|---|---|
|
#18+
номер к1 к2 пользователь 1111 1 2 100 2222 1 3 101 --два юзера с двумя битыми ресурсами 3333 1 4 0 4444 1 2 0 5555 1 2 0 6666 1 3 0 7777 1 3 0 список плохих ресурсов (1111,2222) надо чтобы вышло 1111 1 2 100 2222 1 3 101 --два юзера с двумя битыми ресурсами 3333 1 4 0 4444 1 2 0 5555 1 2 100 -- назначеный вместо 1111 ибо по обоим критериям такойже и свободный 6666 1 3 101 -- назначеный вместо 2222 ибо по обоим критериям такойже и свободный 7777 1 3 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 19:03:15 |
|
||
|
что-то не получаеться написать update на переназначение связаных записей.
|
|||
|---|---|---|---|
|
#18+
результат простого джоина по типу запроса выше получиться, предположим что есть есчё 9999 1 2 102 - и єто тоже плохой ресурс 1111 1 2 100 4444 1 2 0 --лажа 1111 1 2 100 5555 1 2 0 --лажа 2222 1 3 101 6666 1 3 0 2222 1 3 101 7777 1 3 0 9999 1 2 102 4444 1 2 0 -лажа 9999 1 2 102 5555 1 2 0 -лажа каждому старому(1111, 9999) найден каждый новый 4444 и 5555 по критериям к1=1 к2=2 вот этого избежать не получается... что если например 4444 мы берём на замену 1111, то на замену 9999 уже нельзя взять 4444.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 19:07:36 |
|
||
|
что-то не получаеться написать update на переназначение связаных записей.
|
|||
|---|---|---|---|
|
#18+
блин...когда делал пост, интуиция подсказывала....не позорься, тыж сам на раз можешь.... но видать температура дала о себе знать. вообщем говоря - решение Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 19:52:54 |
|
||
|
что-то не получаеться написать update на переназначение связаных записей.
|
|||
|---|---|---|---|
|
#18+
пошол работать с базой продакшина... надеюсь не плугонул :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 19:54:27 |
|
||
|
что-то не получаеться написать update на переназначение связаных записей.
|
|||
|---|---|---|---|
|
#18+
alex564657498765453но видать температура дала о себе знать.alex564657498765453пошол работать с базой продакшина...Вы поосторожнее там :) А лучше бы лежать и лечиться, а то толком ни здоровья, ни работы не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 20:03:26 |
|
||
|
что-то не получаеться написать update на переназначение связаных записей.
|
|||
|---|---|---|---|
|
#18+
alex564657498765453, что-то у меня слишком сложно получилось ... а ваш вариант не сработал. Код: 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. 27. number c1 c2 user_id1111 1 2 -1002222 1 3 -1013333 1 4 04444 1 2 1005555 1 2 1026666 1 3 1017777 1 3 09999 1 2 -102 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 21:32:19 |
|
||
|
что-то не получаеться написать update на переназначение связаных записей.
|
|||
|---|---|---|---|
|
#18+
Cygapb-007, вариант визуально проверил...да, должно быть всё верно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 21:46:14 |
|
||
|
что-то не получаеться написать update на переназначение связаных записей.
|
|||
|---|---|---|---|
|
#18+
и на фидлере посмотрел, работает. мой вариант подправив(там ошибки в алиасах, ну и <list1> нада заменить на select number from bad вообщем работает без последнего(на один меньше апдейт чем должно быть) а на локалке работала полностью.... вот сижу гадаю почему. есть идеи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 22:04:24 |
|
||
|
что-то не получаеться написать update на переназначение связаных записей.
|
|||
|---|---|---|---|
|
#18+
ошибочка...на фидлере мой вариант только два апдейта делает.... может там ограничение какое срабатывает.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 22:07:41 |
|
||
|
что-то не получаеться написать update на переназначение связаных записей.
|
|||
|---|---|---|---|
|
#18+
Вот и у меня 2 изменения сделал. А в виртуалку лезть на mySQL лениво:) Про вариант - хз как там что в реале, но от повторного назначения битого битым я б подстраховался. Да и отрицательные ID не пролезут через FK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 23:01:26 |
|
||
|
что-то не получаеться написать update на переназначение связаных записей.
|
|||
|---|---|---|---|
|
#18+
Cygapb-007Вот и у меня 2 изменения сделал. А в виртуалку лезть на mySQL лениво:) Про вариант - хз как там что в реале, но от повторного назначения битого битым я б подстраховался. Да и отрицательные ID не пролезут через FK я нашёл ошибку в своём. надо не только запоминать битые номера обработанные, но и небитанные обработанные а то получаеться, первому битому назначаем по критериям номер1 потом второму битому с темиже критериями(параметрами с1 с2) - назначаем тотоже самый номер1 :) итого получается, количество назначений равно количеству уникальных наборов характеристик с1,с2 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 23:10:12 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38996399&tid=1832999]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
140ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 431ms |

| 0 / 0 |
