Здесь мой групповой запрос
GROUP_CONCAT(DISTINCT IF(catalog_product_entity_varchar.attribute_id = '134',catalog_product_entity_varchar.value,NULL)) AS 'Subtitle'
Таблица содержит несколько строк с 134 в качестве идентификатора атрибута.На самом деле все, что я хочу сделать, это вытащить первый catalog_product_entity_varchar.value WHERE catalog_product_entity_int.attribute_id = 134
Полный SQL выглядит так:чтобы прояснить ситуацию.
Я собираю данные для продуктов.Чтобы упростить задачу, постарайтесь игнорировать большую часть запроса.Мы сосредоточимся только на «sku» и «subtitle».
Первая таблица catalog_product_entity.Мы снимаем SKU для каждого продукта.Существует также уникальный «entity_id».
Мы используем «entity_id», когда мы хотим извлечь все связанные детали для этого продукта из другой таблицы с именем catalog_product_entity_varchar.
Атрибут id относится ккакую конкретную информацию вы хотите.134 это субтитры и 63 это имя.Существуют и другие «атрибуты», каждый из которых имеет идентификатор.
Я использовал оператор IF, чтобы позволить мне назначить 134 для «субтитров» и 63 для «имен».Таблица выглядит примерно так:
entity_id attribute_id store_id value
1 134 0 green, large
1 134 1 green, large
1 134 2 green, large
1 63 0 dakine day hiker bag
1 63 1 dakine day hiker bag
1 63 2 dakine day hiker bag
Обратите внимание, что один продукт, кажется, хранит один и тот же субтитр 3 раза.Это связано с тем, что используемая мной платформа электронной коммерции (Magento) позволяет хранить разные субтитры для каждого магазина, в котором вы работаете (одна установка Magento позволяет нескольким доменам совместно использовать одну и ту же базу данных продуктов, но иметь отдельные субтитры / описания и т. Д.)
Я использовал Group_Concat для получения данных, а затем DISTINCT, чтобы убедиться, что я получаю только один субтитр.Однако проблема, с которой я сталкиваюсь, заключается в том, что большую часть времени мои субтитры и имена абсолютно одинаковы во всех магазинах (так работает Distinct), но когда разные субтитры различаются, они получат более одного субтитра.
Toчестно говоря, я не очень хорош в MYSQL и чувствую, что могу как-то вообще пропустить group_concat, возможно, используя вложенные операторы SQL.Имейте в виду, что мы не всегда знаем, какие идентификаторы магазина будет использовать продукт.
Мне все равно, какие субтитры я беру, просто хочу один, первый, минимальный, максимальный,Безотносительно.