|
|
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
Добрйы день. Имеется не простая задачка, покрайней мере для меня. Имеются 3 таблицы `oc_product_description`,`oc_attribute_description`,`oc_product_attribute` oc_product_description - хранит название продукта и description oc_product_attribute - хранит значение атрибутов oc_attribute_description - хранит наименование атрибутов. Имеется запрос UPDATE `oc_product_description`,`oc_attribute_description`,`oc_product_attribute` set `oc_product_description`.`description`= concat ('Вы можете приобрести ',`oc_product_description`.`name`,' с гарантией от производителя.',' ',`oc_attribute_description`.`name`,' ',`oc_product_attribute`.`text`,' на ',`oc_product_attribute`.`text`) where `oc_product_description`.`product_id` = 102 and `oc_product_description`.`language_id` = 4 and `oc_attribute_description`.`language_id` = `oc_product_attribute`.`language_id` and `oc_product_attribute`.`language_id` = `oc_product_description`.`language_id` and `oc_attribute_description`.`attribute_id` = `oc_product_attribute`.`attribute_id` and `oc_product_attribute`.`product_id` = `oc_product_description`.`product_id` and `oc_attribute_description`.`attribute_id` in (2,4,1,10) Он работает но не так как требуется. Каждый `oc_attribute_description`.`attribute_id` имеет своё значение. Необходимо что бы `oc_product_attribute`.`text` выводились в поле `oc_product_description`.`description` в нужный момент свой.Cейчас выводится text только с id 2 oc_product_description`.`product_id` = 102 задано с целью тестирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2015, 17:19:36 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
Раз тебе нужны записи 4 разных типов (`oc_attribute_description`.`attribute_id` in (2,4,1,10) ), изволь приматывать в запрос 4 копии таблицы oc_attribute_description, и из каждой брать текстовку для одного нужного атрибута. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2015, 17:48:14 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
Не понял, как это должно выглядеть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2015, 17:52:11 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
То что нужно брать текстовку это понятно но как её приматывать в concat непонятно. Пробывал переменными но тоже не вышло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2015, 17:55:24 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2015, 18:03:54 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
Не могу понять, поясните пожалуйста. Что за pd , pa и как их использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2015, 18:26:50 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
Вроде понял. Поменял запрос на такой. UPDATE `oc_product_description` pd JOIN `oc_attribute_description` ad JOIN `oc_product_attribute` pa2 ON pa2.attribute_id = pa2.attribute_id AND pa2.attribute_id = 2 JOIN `oc_product_attribute` pa4 ON pa4.attribute_id = pa4.attribute_id AND pa4.attribute_id = 4 JOIN `oc_product_attribute` pa1 ON pa1.attribute_id = pa1.attribute_id AND pa1.attribute_id = 1 JOIN `oc_product_attribute` pa10 ON pa10.attribute_id = pa10.attribute_id AND pa10.attribute_id = 10 JOIN `oc_product_attribute` pl ON pl.language_id = pl.language_id AND pl.language_id = 4 JOIN `oc_product_attribute` pap ON pap.product_id = pap.product_id JOIN `oc_product_attribute` pat ON pat.text = pat.text set pd.`description`= concat ('Вы можете приобрести ',pd.`name`,' с гарантией от производителя.',' ',ad.`name`,' ',pat.`text`,' на ',pat.`text`) where pd.`product_id` = 102 and pd.`language_id` = 4 and ad.`language_id` = pl.`language_id` and pl.`language_id` = pd.`language_id` or ad.`attribute_id` = pa2.`attribute_id` or ad.`attribute_id` = pa4.`attribute_id` or ad.`attribute_id` = pa1.`attribute_id` or ad.`attribute_id` = pa10.`attribute_id` and pap.`product_id` = pd.`product_id` Есть пара проблем, 1) на хостинге такой запрос не может выполниться, всё начинает виснуть) 2) в concat у меня по прежнему pat.`text`,' на ',pat.`text` не прикреплённые к определённому attribute_id, как это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2015, 11:55:28 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
tiraelius, план гляди. где план? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 08:12:05 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
tiraelius, OR без скобок обрабатывает всю таблицу - так и задумывалось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 09:35:44 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Что имеете в виду под планом? я не супер спец в sql , могу допускать ошибки. lamer yuga, А как по другому, attribut id должен же найти совпадение, или есть другой выход? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 10:48:17 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
У кого есть какие идеи пишите пожалуйста развёрнуто, потому что я в тупике. Если есть вопросы спрашивайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 10:56:23 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
tiraelius Код: sql 1. 2. Есть пара проблем, 1) на хостинге такой запрос не может выполниться, всё начинает виснуть) Бугага !1 Ещё бы ! :) написал бы сразу ON 1=1 Автор, добрый совет Не выноси тут мозг людям со своим придуманным решением! Приведи небольшой пример данных таблиц, и результат, который ты на них хочешь получить. ... и в тегах , в тегах, Карл !! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 11:02:13 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
1=1tiraelius Код: sql 1. 2. Есть пара проблем, 1) на хостинге такой запрос не может выполниться, всё начинает виснуть) Бугага !1 Ещё бы ! :) написал бы сразу ON 1=1 Автор, добрый совет Не выноси тут мозг людям со своим придуманным решением! Приведи небольшой пример данных таблиц, и результат, который ты на них хочешь получить. ... и в тегах , в тегах, Карл !! Ok. 3 таблицы oc_product_description - хранит название продукта и description oc_product_attribute - хранит значение атрибутов oc_attribute_description - хранит наименование атрибутов. oc_product_description product_id | 102 | 102 language_id | 4 | 1 name | Вытяжка | Вытяжка description | ........ | ........ oc_product_attribute product_id | 102 | 102 | 102 attribute_id | 2 | 2 | 3 language_id | 4 | 1 | 4 text | встраиваемая в шкаф | встраиваемая в шкаф | серый oc_attribute_description attribute_id | 2 | 2 | 3 language_id | 4 | 1 | 4 name | Установка | Установка | Цвет language_id имеются 2 но интересует только 4, это русский. Грубый пример на 1 товаре. Нужно. в таблице oc_product_description вывести в поле description, такую фишку: Вы можете приобрести 'Вытяжку' с гарантией от производителя 'Установка' 'встраиваемая в шкаф' и 'Цвет' 'серый'. нужные фразы с подставлением взяты в кавычки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 12:03:12 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
tiraelius1=1пропущено... Бугага !1 Ещё бы ! :) написал бы сразу ON 1=1 Автор, добрый совет Не выноси тут мозг людям со своим придуманным решением! Приведи небольшой пример данных таблиц, и результат, который ты на них хочешь получить. ... и в тегах , в тегах, Карл !! Ok. 3 таблицы oc_product_description - хранит название продукта и description oc_product_attribute - хранит значение атрибутов oc_attribute_description - хранит наименование атрибутов. oc_product_description Код: sql 1. 2. 3. 4. oc_product_attribute Код: sql 1. 2. 3. 4. oc_attribute_description Код: sql 1. 2. 3. language_id имеются 2 но интересует только 4, это русский. Грубый пример на 1 товаре. Нужно. в таблице oc_product_description вывести в поле description, такую фишку: Вы можете приобрести 'Вытяжку' с гарантией от производителя 'Установка' 'встраиваемая в шкаф' и 'Цвет' 'серый'. нужные фразы с подставлением взяты в кавычки.типа такого что-то отладь и потом переделаешь на UPDATE Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 12:33:53 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
1=1, Забыл про ещё одну таблицу. oc_product_to_category product_id category_id в ней идёт сопоставление продукта и относящейся к ней категории товара. Как к этому запросу ещё category_id прилипить что бы обновлялось description только товаров из данной категории? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 13:07:42 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
tiraelius1=1, Забыл про ещё одну таблицу. oc_product_to_category product_id category_id в ней идёт сопоставление продукта и относящейся к ней категории товара. Как к этому запросу ещё category_id прилипить что бы обновлялось description только товаров из данной категории? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 13:11:58 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
1=1, Не могу никак под update загнать. ругается #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from `oc_product_description` pd inner join `oc_product_attribute` pa on pd.pr' at line 10 делаю так авторUPDATE `oc_product_description` set `oc_product_description`.`description`= concat( 'Вы можете приобрести ', pd.name, ' с гарантией от производителя', ' ', max(case when ad.attribute_id=2 then ad.name end), ' ', ' ', max(case when ad.attribute_id=2 then pa.text end), ' ', ' и ', ' ', max(case when ad.attribute_id=3 then ad.name end), ' ', ' ', max(case when ad.attribute_id=3 then pa.text end), ' ') as xz from oc_product_description pd inner join oc_product_attribute pa on pd.product_id=pa.product_id and pd.language_id=pa.language_id inner join oc_attribute_description ad on pa.attribute_id=ad.attribute_id and pa.language_id=ad.language_id inner join oc_product_to_category pc on pc.product_id=pa.product_id where pd.language_id=4 and pa.attribute_id in (2,3) and pc.category_id = 121 and pa.product_id = 102 group by pd.name ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 13:29:31 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
tiraeliusругаетсяпотому что не надо изобретать свой синтаксис ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 13:35:46 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
поменял на UPDATE `oc_product_description` pd inner join oc_product_attribute pa on pd.product_id=pa.product_id and pd.language_id=pa.language_id inner join oc_attribute_description ad on pa.attribute_id=ad.attribute_id and pa.language_id=ad.language_id inner join oc_product_to_category pc on pc.product_id=pa.product_id set pd.`description`= concat( 'Вы можете приобрести ', pd.name, ' с гарантией от производителя', ' ', max(case when ad.attribute_id=2 then ad.name end), ' ', ' ', max(case when ad.attribute_id=2 then pa.text end), ' ', ' и ', ' ', max(case when ad.attribute_id=3 then ad.name end), ' ', ' ', max(case when ad.attribute_id=3 then pa.text end), ' ') where pd.language_id=4 and pa.attribute_id in (2,3) and pc.category_id = 121 and pa.product_id = 102 тож не катит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 13:38:13 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
tiraelius, или так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. (не факт, что в МуСКЛ такое пройдёт) или так Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 13:42:03 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
В каждом находит ошибки ситаксиса. Давайте 1 вариант разберём. авторUPDATE `oc_product_description` pd inner join oc_product_attribute pa on pd.product_id=pa.product_id and pd.language_id=pa.language_id inner join oc_attribute_description ad on pa.attribute_id=ad.attribute_id and pa.language_id=ad.language_id inner join oc_product_to_category pc on pc.product_id=pa.product_id set pd.`description`= concat( 'Вы можете приобрести ', pd.name, ' с гарантией от производителя', ' ', max(case when ad.attribute_id=2 then ad.name end), ' ', ' ', max(case when ad.attribute_id=2 then pa.text end), ' ', ' и ', ' ', max(case when ad.attribute_id=3 then ad.name end), ' ', ' ', max(case when ad.attribute_id=3 then pa.text end), ' ') where pd.language_id=4 and pa.attribute_id in (2,3) and pc.category_id = 121 and pa.product_id = 102 тут ошибка 1111 invalid use of group function ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 13:51:12 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
tiraeliusтут ошибка 1111 invalid use of group functionэто как раз было из разряда 1=1(не факт, что в МуСКЛ такое пройдёт) давай ошибки второго ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 14:01:58 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
1=1, #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from oc_product_description pd inner join oc_product_attribute pa on pd.produc' at line 10 после этой ошибки я from поднимал перед set , потом мускул ругается на group by и если его убрать то 1111 идёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 14:04:59 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
tiraelius, max в concat какую роль выполняет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 14:11:18 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
tiraelius, Вообще без from нужно Update pd join (...) a ... set pd.desc = a.xz ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 14:12:58 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
UPDATE `oc_product_description` pd inner join oc_product_attribute pa on pd.product_id=pa.product_id and pd.language_id=pa.language_id inner join oc_attribute_description ad on pa.attribute_id=ad.attribute_id and pa.language_id=ad.language_id inner join oc_product_to_category pc on pc.product_id=pa.product_id1=1, Я же так и пишу. Или надо по другому? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 16:22:11 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
вот так полностью получается UPDATE oc_product_description pd inner join oc_product_attribute pa on pd.product_id=pa.product_id and pd.language_id=pa.language_id inner join oc_attribute_description ad on pa.attribute_id=ad.attribute_id and pa.language_id=ad.language_id inner join oc_product_to_category pc on pc.product_id=pa.product_id set pd.`description`= concat( 'Вы можете приобрести ', pd.name, ' с гарантией от производителя', ' ', max(case when ad.attribute_id=2 then ad.name end), ' ', ' ', max(case when ad.attribute_id=2 then pa.text end), ' ', ' и ', ' ', max(case when ad.attribute_id=3 then ad.name end), ' ', ' ', max(case when ad.attribute_id=3 then pa.text end), ' ') where pd.language_id=4 and pa.attribute_id in (2,3) and pc.category_id = 121 and pa.product_id = 102 1111 ошибка. проблема в concat его нужно переделать я так думаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2015, 18:27:47 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
max-агрегатная функция, не полетит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2015, 13:06:15 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
1. создай запрос для выборки тех записей что требуется заменить 2. создай запрос который извлекает новое значение description у одной записи, т.е. со сссылкой на первичный ключ 3. первый запрос преврати в апдейт, а второй запрос преврати в set description=sql2, только в sql2 должен ссылаться на первичный ключ sql1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2015, 13:23:07 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
bochkov, Я несовсем понял. Что имеете под первичным ключём? Если по пукнтам то получается так 1) авторselect * from oc_product_description pd inner join oc_product_to_category pc on pd.product_id=pc.product_id inner join oc_product_attribute pa on pd.product_id=pa.product_id and pd.language_id=pa.language_id inner join oc_attribute_description ad on pa.attribute_id=ad.attribute_id and pa.language_id=ad.language_id where pd.language_id=4 and pa.attribute_id in (2,3) and pc.category_id=121 2) авторselect concat( 'Вы можете приобрести "', pd.name, '" с гарантией от производителя', ' "', max(case when ad.attribute_id=2 then ad.name end), '" ', ' "', max(case when ad.attribute_id=2 then pa.text end), '" ', ' и ', ' "', max(case when ad.attribute_id=3 then ad.name end), '" ', ' "', max(case when ad.attribute_id=3 then pa.text end), '" ') from oc_product_description pd inner join oc_product_to_category pc on pd.product_id=pc.product_id inner join oc_product_attribute pa on pd.product_id=pa.product_id and pd.language_id=pa.language_id inner join oc_attribute_description ad on pa.attribute_id=ad.attribute_id and pa.language_id=ad.language_id where pd.language_id=4 and pa.attribute_id in (2,3) and pc.category_id=121 and pd.product_id = 102 Если их склеивать то получится собственно то что и получалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2015, 13:49:17 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
2 запрос должен вывести одну и только одну запись где в where должен быть определен первичный ключ таблицы pd ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2015, 14:29:24 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
первичный ключ это стобцы в секции primary key таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2015, 14:38:54 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
ну так и получается. в этой таблице примари являются PRIMARY KEY (`product_id`,`language_id`), по сути надо тока убрать category id, но смысл от этого не изменится. Выводится 1 запись потому что задана pd.product_id = 102 и pd.language_id=4 select concat( 'Вы можете приобрести "', pd.name, '" с гарантией от производителя', ' "', max(case when ad.attribute_id=2 then ad.name end), '" ', ' "', max(case when ad.attribute_id=2 then pa.text end), '" ', ' и ', ' "', max(case when ad.attribute_id=3 then ad.name end), '" ', ' "', max(case when ad.attribute_id=3 then pa.text end), '" ') from oc_product_description pd inner join oc_product_to_category pc on pd.product_id=pc.product_id inner join oc_product_attribute pa on pd.product_id=pa.product_id and pd.language_id=pa.language_id inner join oc_attribute_description ad on pa.attribute_id=ad.attribute_id and pa.language_id=ad.language_id where pd.language_id=4 and pa.attribute_id in (2,3) and pd.product_id = 102 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2015, 21:55:42 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#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. 24. пишу с планшета так что могу ошибиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2015, 22:33:40 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
сделал вот так авторUPDATE oc_product_description pd inner join oc_product_to_category pc on pd.product_id=pc.product_id inner join oc_product_attribute pa on pd.product_id=pa.product_id and pd.language_id=pa.language_id SET product_description=( select concat( 'Вы можете приобрести ', pd2.name, ' с гарантией от производителя', ' ', max(case when ad2.attribute_id=2 then ad2.name end), ' ', ' ', max(case when ad2.attribute_id=2 then pa2.text end), ' ', ' и ', ' ', max(case when ad2.attribute_id=3 then ad2.name end), ' ', ' ', max(case when ad2.attribute_id=3 then pa2.text end), ' ') from oc_product_description pd2 inner join oc_product_attribute pa2 on pd2.product_id=pa2.product_id and pd2.language_id=pa2.language_id inner join oc_attribute_description ad2 on pa2.attribute_id=ad2.attribute_id and pa2.language_id=ad2.language_id where pd2.language_id=pd.languags_id and pa2.attribute_id in (2,3) and pd2.product_id = pd.product_id and pd.language_id= 4 and pa.attribute_id in (2,3) and pc.category_id= 121 Ошибка такая. #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 23 Что может быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 12:09:11 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
tiraeliusЧто может быть?завершающей скобки нет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 12:37:27 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
tanglir, какой скобки, где? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 13:06:12 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
Завершающей. То есть закрывающей, расположенной в самом конце запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 13:11:47 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
tanglir, в phpmyadmin это не требуется он сам доставляет. и в сообщение написано про '' а не про ; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 13:15:45 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
tiraeliusи в сообщение написано про '' а не про ;в сообщени и вообще не написано про какой-либо символ да и сами подумайте, как он может ругаться на скобку (при чём тут точка с запятой, кстати?), если этой скобки в запросе нет? libastral.dll в стандартный комплект поставки мускля, знаете ли, не входит tiraeliusв phpmyadmin это не требуется он сам доставляетда неужели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 13:26:16 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
tanglir, Ок я дурак. В упор не вижу, что данная скобка должна закрывать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 13:32:39 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#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. 24. 25. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 13:37:45 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
действительно. получился такй запрос авторUPDATE oc_product_description pd inner join oc_product_to_category pc on pd.product_id=pc.product_id inner join oc_product_attribute pa on pd.product_id=pa.product_id and pd.language_id=pa.language_id SET pd.`description`=( select concat( 'Вы можете приобрести ', pd2.name, ' с гарантией от производителя', ' ', max(case when ad2.attribute_id=2 then ad2.name end), ' ', ' ', max(case when ad2.attribute_id=2 then pa2.text end), ' ', ' и ', ' ', max(case when ad2.attribute_id=3 then ad2.name end), ' ', ' ', max(case when ad2.attribute_id=3 then pa2.text end), ' ') from oc_product_description pd2 inner join oc_product_attribute pa2 on pd2.product_id=pa2.product_id and pd2.language_id=pa2.language_id inner join oc_attribute_description ad2 on pa2.attribute_id=ad2.attribute_id and pa2.language_id=ad2.language_id where pd2.language_id=pd.languags_id and pa2.attribute_id in (2,3) and pd2.product_id = pd.product_id and pd.language_id= 4 and pa.attribute_id in (2,3) and pc.category_id= 121 ) а нашёл ошибку и заменил SET product_description=( на SET pd.`description`=( Выскочил такой ахтунг ERROR 1093 (HY000): You can't specify target table 'pd' for update in FROM clause ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 13:45:10 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
оставь как было закрой скобкой перед where основного запроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 14:20:04 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
Получается так авторUPDATE oc_product_description pd inner join oc_product_to_category pc on pd.product_id=pc.product_id inner join oc_product_attribute pa on pd.product_id=pa.product_id and pd.language_id=pa.language_id SET pd.`description`=( select concat( 'Вы можете приобрести ', pd2.name, ' с гарантией от производителя', ' ', max(case when ad2.attribute_id=2 then ad2.name end), ' ', ' ', max(case when ad2.attribute_id=2 then pa2.text end), ' ', ' и ', ' ', max(case when ad2.attribute_id=3 then ad2.name end), ' ', ' ', max(case when ad2.attribute_id=3 then pa2.text end), ' ') from oc_product_description pd2 inner join oc_product_attribute pa2 on pd2.product_id=pa2.product_id and pd2.language_id=pa2.language_id inner join oc_attribute_description ad2 on pa2.attribute_id=ad2.attribute_id and pa2.language_id=ad2.language_id ) where pd2.language_id=pd.languags_id and pa2.attribute_id in (2,3) and pd2.product_id = pd.product_id and pd.language_id= 4 and pa.attribute_id in (2,3) and pc.category_id= 121 ERROR 1093 (HY000): You can't specify target table 'pd' for update in FROM clause видимо тут не в скобке дело. Мне тут забугорные парни написали автор I don't think you can update the join of two tables directly. Select query fetches data from multiple tables which is alright but update will not work like that. "Update" is intended to work on a single table only but you are updating the joins of multiple tables. Update с inner join работать мол не будет...... а без него возможно как то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 14:37:06 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
bochkov Код: 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. вообщето версия была такая как минимум 2 секции where ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 14:41:21 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
ok. была некоторая ошибка я заменил SET product_description=( на SET pd.`description`=( в результате получилось авторUPDATE oc_product_description pd inner join oc_product_to_category pc on pd.product_id=pc.product_id inner join oc_product_attribute pa on pd.product_id=pa.product_id and pd.language_id=pa.language_id SET pd.`description`=( select concat( 'Вы можете приобрести ', pd2.name, ' с гарантией от производителя', ' ', max(case when ad2.attribute_id=2 then ad2.name end), ' ', ' ', max(case when ad2.attribute_id=2 then pa2.text end), ' ', ' и ', ' ', max(case when ad2.attribute_id=3 then ad2.name end), ' ', ' ', max(case when ad2.attribute_id=3 then pa2.text end), ' ') from oc_product_description pd2 inner join oc_product_attribute pa2 on pd2.product_id=pa2.product_id and pd2.language_id=pa2.language_id inner join oc_attribute_description ad2 on pa2.attribute_id=ad2.attribute_id and pa2.language_id=ad2.language_id where pd2.language_id=pd.languags_id and pa2.attribute_id in (2,3) and pd2.product_id = pd.product_id ) where pd.language_id= 4 and pa.attribute_id in (2,3) and pc.category_id= 121 ERROR 1093 (HY000): You can't specify target table 'pd' for update in FROM clause ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 14:45:10 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
видимо в подзапросе нужно убрать упоминание pd2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 14:56:58 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
получается так авторUPDATE oc_product_description pd inner join oc_product_to_category pc on pd.product_id=pc.product_id inner join oc_product_attribute pa on pd.product_id=pa.product_id and pd.language_id=pa.language_id SET pd.`description`=( select concat( 'Вы можете приобрести ', pd.name, ' с гарантией от производителя', ' ', max(case when ad2.attribute_id=2 then ad2.name end), ' ', ' ', max(case when ad2.attribute_id=2 then pa2.text end), ' ', ' и ', ' ', max(case when ad2.attribute_id=3 then ad2.name end), ' ', ' ', max(case when ad2.attribute_id=3 then pa2.text end), ' ') from oc_product_description pd2 inner join oc_product_attribute pa2 on pd2.product_id=pa2.product_id and pd2.language_id=pa2.language_id inner join oc_attribute_description ad2 on pa2.attribute_id=ad2.attribute_id and pa2.language_id=ad2.language_id where pd2.language_id=pd.languags_id and pa2.attribute_id in (2,3) and pd2.product_id = pd.product_id ) where pd.language_id= 4 and pa.attribute_id in (2,3) and pc.category_id= 121 ERROR 1093 (HY000): You can't specify target table 'pd' for update in FROM clause pd апнутся не может. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 15:06:19 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#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.06.2015, 15:08:07 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
поправил bochkovкак то так, Код: 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.06.2015, 15:09:16 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
Unknown column 'pd2.name' in 'field list' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 15:11:27 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
tiraeliusUnknown column 'pd2.name' in 'field list' исправь на pd.name ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 15:12:24 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
не это из 1 варианта. из 2 -го ERROR 1054 (42S22): Unknown column 'pd.languags_id' in 'where clause' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 15:13:00 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
tiraeliusне это из 1 варианта. из 2 -го ERROR 1054 (42S22): Unknown column 'pd.languags_id' in 'where clause' видимо надо правильно название столбца написать смотри внимательно мне трудно с планшета кодить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 15:16:11 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
Я коньчил :) похоже сработало. куда вбить id продукта что бы проверить на 1 продукте на продакшене. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 15:21:18 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
я уже запутался что куда в этом запросе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 15:22:32 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
в последний where укажи product_id и language_id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 15:25:31 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
bochkovв последний where укажи product_id и language_id не только product_id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 15:26:37 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
так? pd.product_id = 102 pd.language_id=4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 15:27:28 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
tiraeliusтак? pd.product_id = 102 pd.language_id=4 наверное, тебе видней, бэкап сделай навсякий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 15:34:43 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
я делаю через phpmyadmin и не срабатывает така канитель import.php: Missing parameter: import_type (FAQ 2.8) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 15:35:59 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
tiraeliusя делаю через phpmyadmin и не срабатывает така канитель import.php: Missing parameter: import_type (FAQ 2.8) запрос покажи только src sql тегом оформь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 15:38:33 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#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. 24. 25. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 15:43:54 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
пхп админ глючит погуглил, говорят с сеансом проблема перезалогинься ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 15:50:02 |
|
||
|
Вложенный запрос.(сложный)
|
|||
|---|---|---|---|
|
#18+
Да всё ок, большое спасибо! Оч. благодарен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 15:55:49 |
|
||
|
|

start [/forum/topic.php?all=1&fid=47&tid=1833076]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
127ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
94ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 507ms |

| 0 / 0 |
