2016-07-25 13 views
1

すべてのMagentoカテゴリを取得するためにこのSQLクエリがあります。SQLクエリを使用してすべてのMagentoカテゴリを取得

SELECT DISTINCT 
    cc.entity_id AS id, 
    cc.`value` AS path, 
    cc1.`value` AS `NAME`, 
    cce.`level`, 
    cce.parent_id 
FROM 
    catalog_category_entity_varchar cc 
JOIN catalog_category_entity_varchar cc1 ON cc.entity_id = cc1.entity_id 
JOIN eav_entity_type ee ON cc.entity_type_id = ee.entity_type_id 
JOIN catalog_category_entity cce ON cc.entity_id = cce.entity_id 
WHERE 
    cc.attribute_id = '57' 
AND cc1.attribute_id = '41' 
AND ee.entity_model = 'catalog/category' 

これは、Magentoバックエンドから新しいカテゴリを作成したが、表示されないカテゴリをすべて返します。

このカテゴリには掲載されていません。 次の画像はcatalog_category_entity_varcharです。

enter image description here

entity_id = 449私はそのクエリを実行すると、それはattribute_id = 57を持っていないため、表示されていないこと、それはattribute_id = 57 and 41

を持っている。しかし、私はおよそentity_id = 452を話しているので、表示されます。

私はMagentoの専​​門家に質問したいと思いますが、attribute_id = 57は何に属していますか?すべてのカテゴリを取得するためにこのクエリを修正するにはどうすればよいですか? PS 純粋なSQLクエリ、No Magentoコードが必要です!

答えて

1

あなたはvarchar型の属性5741を持っているEAVカテゴリモデルからカテゴリを選択している:私の1.9 Magentoのインストールによると

cc.attribute_id = '57' 
cc1.attribute_id = '41' 

これをしていますnameおよびpathの属性は、catalog/catagory

select distinct ea.attribute_code from eav_attribute as ea inner join catalog_category_entity_varchar as vc on ea.attribute_id=vc.attribute_id where vc.attribute_id in (57,41);

すべての生のカテゴリは、このSQLを使用して取得するには:

SELECT `e`.* FROM `catalog_category_entity` AS `e` WHERE (`e`.`entity_type_id` = '3')' 

または名前のカテゴリを取得するためには、この使用:

SELECT `e`.*, 
     IF(at_name.value_id > 0, at_name.value, at_name_default.value) AS `name` 
FROM `catalog_category_entity` AS `e` 
INNER JOIN `catalog_category_entity_varchar` AS `at_name_default` ON (`at_name_default`.`entity_id` = `e`.`entity_id`) 
AND (`at_name_default`.`attribute_id` = '41') 
LEFT JOIN `catalog_category_entity_varchar` AS `at_name` ON (`at_name`.`entity_id` = `e`.`entity_id`) 
AND (`at_name`.`attribute_id` = '41') 
+0

私はmagentoコードではないSQLクエリをしたい – Umair

+0

私はそのサイトへのコードアクセスを持っていない、バックエンドのアクセスだけ.... – Umair

+0

どのテーブルからですか?もしあなたが私にテーブル – Umair

1

だけの推測...

SELECT DISTINCT cc.entity_id id 
       , cc.value path 
       , cc1.value NAME 
       , cce.level 
       , cce.parent_id 
      FROM catalog_category_entity_varchar cc 
      LEFT 
      JOIN catalog_category_entity_varchar cc1 
      ON cc.entity_id = cc1.entity_id 
      AND cc1.attribute_id = 41 
      JOIN eav_entity_type ee 
      ON cc.entity_type_id = ee.entity_type_id 
      JOIN catalog_category_entity cce 
      ON cc.entity_id = cce.entity_id 
      WHERE cc.attribute_id = 57 
      AND ee.entity_model = 'catalog/category' 
+0

をまた:(そのカテゴリを返すdidntの結果の同じ数を返さ私が紛失している – Umair

関連する問題