Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » запрос MySQL - IN

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

MbIJIO



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день, ситуация такая, мне необходимо заджойнить таблицу

Код:
 
LEFT JOIN eav_attribute AS ea   ON ea.attribute_id IN (    
                                        SELECT attribute_id  
                                        FROM eav_attribute  
                                        WHERE attribute_code IN ("attribute_52","atribute_968461564558","manufacturer")
)
 

 
но эту строку "attribute_52","atribute_968461564558","manufacturer" надо формировать "на лету",  
 
попробовал ее получить таким образом

Код:
 
SELECT REPLACE(CONCAT('"',GROUP_CONCAT(VALUE),',manufacturer"'),',','","') AS attribute_code
FROM catalog_category_entity_text  
WHERE entity_id = 1309 AND
           attribute_id IN (128,129)
GROUP BY entity_id
 

 
так геморойно, потому что часть условия (attribute_52,atribute_968461564558) хранится в отдельной ячейке.  
 
в итоге получил такой изврат, но и он не работает:

Код:
 
    LEFT JOIN eav_attribute AS ea   ON ea.attribute_id IN (  SELECT attribute_id  
                                                                                     FROM eav_attribute  
                                                                                     WHERE attribute_code IN (SELECT REPLACE(CONCAT('"',GROUP_CONCAT(VALUE),',manufacturer"'),',','","') AS attribute_code
                                                                                                                           FROM catalog_category_entity_text  
                                                                                                                           WHERE     entity_id = 1309 AND
                                                                                                                                          attribute_id IN (128,129)
                                                                                                                           GROUP BY entity_id))
 

 
подскажите пожалуйста, как правильно сделать

Всего записей: 175 | Зарегистр. 12-12-2006 | Отправлено: 17:11 03-10-2013 | Исправлено: MbIJIO, 17:12 03-10-2013
MbIJIO



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
решил данную задачку
 
воспользовался функцией FIND_IN_SET(искомая_строка, где_ее_ищем)
 
искомая строка это attribute_code
 
где ее ищем получил через селект, моя ошибка была в том, что зря обрамлял кавычками
 
данный скрипт работает:
 

Код:
 
WHERE FIND_IN_SET(ea.attribute_code, (SELECT GROUP_CONCAT(VALUE) AS attributes_codes
                                             FROM catalog_category_entity_text
                                             WHERE entity_id IN (1309,2323) AND attribute_id IN (128,129) AND store_id = 0
                                             GROUP BY store_id))
 

Всего записей: 175 | Зарегистр. 12-12-2006 | Отправлено: 12:06 04-10-2013 | Исправлено: MbIJIO, 12:15 04-10-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MbIJIO
на будущее - MySQL Помогите составить запрос

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:56 04-10-2013
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » запрос MySQL - IN


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru