powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вложенный запрос.(сложный)
69 сообщений из 69, показаны все 3 страниц
Вложенный запрос.(сложный)
    #38976583
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрйы день.
Имеется не простая задачка, покрайней мере для меня.
Имеются 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 задано с целью тестирования.
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38976637
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раз тебе нужны записи 4 разных типов (`oc_attribute_description`.`attribute_id` in (2,4,1,10)
), изволь приматывать в запрос 4 копии таблицы oc_attribute_description, и из каждой брать текстовку для одного нужного атрибута.
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38976640
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не понял, как это должно выглядеть?
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38976644
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То что нужно брать текстовку это понятно но как её приматывать в concat непонятно. Пробывал переменными но тоже не вышло
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38976663
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
UPDATE `oc_product_description` pd
JOIN `oc_product_attribute` pa
JOIN `oc_attribute_description` ad2 ON pa.attribute_id = ad2.attribute_id AND ad2.attribute_id = 2
JOIN `oc_attribute_description` ad4 ON pa.attribute_id = ad4.attribute_id AND ad4.attribute_id = 4
JOIN `oc_attribute_description` ad1 ON pa.attribute_id = ad1.attribute_id AND ad1.attribute_id = 1
JOIN `oc_attribute_description` ad10 ON pa.attribute_id = ad10.attribute_id AND ad10.attribute_id = 10
...
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38976695
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не могу понять, поясните пожалуйста. Что за pd , pa и как их использовать?
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38977197
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде понял. Поменял запрос на такой.

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, как это сделать?
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38977520
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
up
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978312
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tiraelius,

план гляди. где план?
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978323
lamer yuga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tiraelius,

OR без скобок обрабатывает всю таблицу - так и задумывалось?
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978333
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

Что имеете в виду под планом? я не супер спец в sql , могу допускать ошибки.

lamer yuga,

А как по другому, attribut id должен же найти совпадение, или есть другой выход?
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978338
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У кого есть какие идеи пишите пожалуйста развёрнуто, потому что я в тупике. Если есть вопросы спрашивайте.
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978345
1=1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1=1
Гость
tiraelius
Код: sql
1.
2.
...
JOIN `oc_product_attribute` pat ON pat.text = pat.text



Есть пара проблем,
1) на хостинге такой запрос не может выполниться, всё начинает виснуть)
Бугага !1 Ещё бы ! :)
написал бы сразу ON 1=1

Автор, добрый совет
Не выноси тут мозг людям со своим придуманным решением!
Приведи небольшой пример данных таблиц, и результат, который ты на них хочешь получить.

... и в тегах , в тегах, Карл !!
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978365
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1=1tiraelius
Код: sql
1.
2.
...
JOIN `oc_product_attribute` pat ON pat.text = pat.text



Есть пара проблем,
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, такую фишку:
Вы можете приобрести 'Вытяжку' с гарантией от производителя 'Установка' 'встраиваемая в шкаф' и 'Цвет' 'серый'.

нужные фразы с подставлением взяты в кавычки.
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978377
1=1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1=1
Гость
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.
product_id        | 102           | 102           
language_id      | 4              | 1               
name               | Вытяжка    | Вытяжка    
description        | ........        | ........




oc_product_attribute
Код: sql
1.
2.
3.
4.
product_id         | 102                             | 102                             | 102
attribute_id        | 2                                | 2                                | 3 
language_id       | 4                                 | 1                               | 4
text                  | встраиваемая в шкаф    | встраиваемая в шкаф   | серый



oc_attribute_description
Код: sql
1.
2.
3.
attribute_id    |  2           | 2                 | 3
language_id   | 4            | 1                 | 4
name            | Установка | Установка   | Цвет



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.
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), '" ') 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

where pd.language_id=4
  and pa.attribute_id in (2,3)

group by pd.name
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978385
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1=1,

Забыл про ещё одну таблицу.
oc_product_to_category
product_id
category_id

в ней идёт сопоставление продукта и относящейся к ней категории товара.
Как к этому запросу ещё category_id прилипить что бы обновлялось description только товаров из данной категории?
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978389
1=1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1=1
Гость
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.
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), '" ') as xz
  
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=146

group by pd.name
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978395
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978399
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tiraeliusругаетсяпотому что не надо изобретать свой синтаксис
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978400
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поменял на

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


тож не катит
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978401
1=1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1=1
Гость
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.
UPDATE pd
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), ' ')

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

(не факт, что в МуСКЛ такое пройдёт)

или так
Код: 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.
update pd
set pd.description=a.xz
from oc_product_description pd

inner join

(select pd.product_id,
  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_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=146

group by pd.name, pd.product_id) a

on pd.product_id=a.product_id
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978403
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В каждом находит ошибки ситаксиса.

Давайте 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
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978406
1=1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1=1
Гость
tiraeliusтут ошибка 1111 invalid use of group functionэто как раз было из разряда
1=1(не факт, что в МуСКЛ такое пройдёт)
давай ошибки второго
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978408
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 идёт.
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978413
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tiraelius,

max в concat какую роль выполняет?
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978414
1=1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1=1
Гость
tiraelius,

Вообще без from нужно

Update pd join (...) a ...
set pd.desc = a.xz
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978459
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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,

Я же так и пишу. Или надо по другому?
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978487
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот так полностью получается

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 его нужно переделать я так думаю.
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978760
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
up
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978925
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
max-агрегатная функция, не полетит
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978947
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. создай запрос для выборки тех записей что требуется заменить
2. создай запрос который извлекает новое значение description у одной записи, т.е. со сссылкой на первичный ключ
3. первый запрос преврати в апдейт, а второй запрос преврати в set description=sql2,
только в sql2 должен ссылаться на первичный ключ sql1
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38978978
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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


Если их склеивать то получится собственно то что и получалось.
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38979042
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 запрос должен вывести одну и только одну запись
где в where должен быть определен первичный ключ таблицы pd
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38979068
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
первичный ключ это стобцы в секции primary key таблицы
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38979593
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну так и получается.
в этой таблице примари являются
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
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38979603
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.
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
)
where pd.language_id=4
and pa.attribute_id in (2,3)
and pc.category_id=121


пишу с планшета так что могу ошибиться
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980013
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сделал вот так


автор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

Что может быть?
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980055
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tiraeliusЧто может быть?завершающей скобки нет :)
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980088
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

какой скобки, где?
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980095
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Завершающей. То есть закрывающей, расположенной в самом конце запроса.
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980100
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

в phpmyadmin это не требуется он сам доставляет. и в сообщение написано про '' а не про ;
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980116
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tiraeliusи в сообщение написано про '' а не про ;в сообщени и вообще не написано про какой-либо символ
да и сами подумайте, как он может ругаться на скобку (при чём тут точка с запятой, кстати?), если этой скобки в запросе нет?
libastral.dll в стандартный комплект поставки мускля, знаете ли, не входит
tiraeliusв phpmyadmin это не требуется он сам доставляетда неужели?
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980123
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

Ок я дурак. В упор не вижу, что данная скобка должна закрывать?
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980134
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
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
 ) <== закрыли раз - этого у вас нет
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980139
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
действительно.

получился такй запрос

автор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
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980166
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оставь как было
закрой скобкой перед where основного запроса
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980176
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получается так

автор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 работать мол не будет...... а без него возможно как то?
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980177
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
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
)
where pd.language_id=4
and pa.attribute_id in (2,3)
and pc.category_id=121



вообщето версия была такая
как минимум 2 секции where
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980178
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980196
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
видимо в подзапросе нужно убрать упоминание pd2
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980216
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
получается так
автор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 апнутся не может.
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980218
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.
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=concat(
'Вы можете приобрести "', pd2.name,(
select
concat( '" с гарантией от производителя',
' "', 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_attribute pa2
inner join oc_attribute_description ad2 on pa2.attribute_id=ad2.attribute_id and pa2.language_id=ad2.language_id

where pa2.language_id=pd.languags_id
and pa2.attribute_id in (2,3)
and pa2.product_id = pd.product_id
))
where pd.language_id=4
and pa.attribute_id in (2,3)
and pc.category_id=121
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980220
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поправил

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.
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=concat(
'Вы можете приобрести "', pd.name,(
select
concat( '" с гарантией от производителя',
' "', 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_attribute pa2
inner join oc_attribute_description ad2 on pa2.attribute_id=ad2.attribute_id and pa2.language_id=ad2.language_id

where pa2.language_id=pd.languags_id
and pa2.attribute_id in (2,3)
and pa2.product_id = pd.product_id
))
where pd.language_id=4
and pa.attribute_id in (2,3)
and pc.category_id=121
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980222
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Unknown column 'pd2.name' in 'field list'
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980224
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tiraeliusUnknown column 'pd2.name' in 'field list'
исправь на pd.name
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980226
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не это из 1 варианта. из 2 -го
ERROR 1054 (42S22): Unknown column 'pd.languags_id' in 'where clause'
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980233
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tiraeliusне это из 1 варианта. из 2 -го
ERROR 1054 (42S22): Unknown column 'pd.languags_id' in 'where clause'
видимо надо правильно название столбца написать
смотри внимательно
мне трудно с планшета кодить
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980238
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я коньчил :) похоже сработало. куда вбить id продукта что бы проверить на 1 продукте на продакшене.
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980240
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я уже запутался что куда в этом запросе
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980245
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в последний where
укажи product_id и language_id
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980247
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bochkovв последний where
укажи product_id и language_id
не только product_id
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980248
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так?
pd.product_id = 102
pd.language_id=4
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980257
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tiraeliusтак?
pd.product_id = 102
pd.language_id=4
наверное,
тебе видней,
бэкап сделай навсякий
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980258
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я делаю через phpmyadmin и не срабатывает
така канитель
import.php: Missing parameter: import_type (FAQ 2.8)
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980261
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tiraeliusя делаю через phpmyadmin и не срабатывает
така канитель
import.php: Missing parameter: import_type (FAQ 2.8)
запрос покажи
только src sql тегом оформь
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980262
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.
24.
25.
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`=concat(
'Вы можете приобрести "', pd.name,(
select
concat( '" с гарантией от производителя',
' "', 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_attribute pa2
inner join oc_attribute_description ad2 on pa2.attribute_id=ad2.attribute_id and pa2.language_id=ad2.language_id

where pa2.language_id=pd.language_id
and pa2.attribute_id in (2,3)
and pa2.product_id = pd.product_id
))
where 
pd.language_id=4
and pa.attribute_id in (2,3)
and pc.category_id=121
and pd.product_id = 102
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980266
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пхп админ глючит
погуглил, говорят с сеансом проблема
перезалогинься
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980272
tiraelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да всё ок, большое спасибо! Оч. благодарен!
...
Рейтинг: 0 / 0
Вложенный запрос.(сложный)
    #38980576
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и хорошо
...
Рейтинг: 0 / 0
69 сообщений из 69, показаны все 3 страниц
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вложенный запрос.(сложный)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]