我知道如何获得产品制造商ID,但我需要产品制造商ID&使用MySQL命名。
75
是获取产品制造商ID的属性ID。
任何人都可以提供帮助吗?
我想用SQL格式。
答案 0 :(得分:7)
首先,我想把它弄清楚。
如果您将产品作为对象,则可以获得如下制造商ID:
$product->getManufacturer();
并且名称为:
$product->getAttributeText('manufacturer');
现在对于sql部分...我不知道为什么你需要它但是这里去了。
假设产品ID为10。
试试这个查询。
SELECT
i.value as manufacturer_id,
v.value as manufacturer_name
FROM
catalog_product_entity_int i
LEFT JOIN
eav_attribute_option o
ON i.value = o.option_id
LEFT JOIN
eav_attribute_option_value v
ON o.option_id = v.option_id AND
v.store_id = 0
WHERE
i.entity_id = 10 AND
i.attribute_id = 75 AND
i.store_id = 0;
如果您希望其他商店视图的值只是将v.store_id = 0
和i.store_id = 0
中的0替换为商店ID的值。 0表示默认值。
答案 1 :(得分:-1)
好的代码,谢谢!
在我的Magento 2.3.1上,我刚刚将attribute_id更改为“ 83”并添加了SKU。它可以正常工作。
SELECT
e.sku as SKU,
i.value as manufacturer_id,
v.value as manufacturer_name
FROM
catalog_product_entity_int i
LEFT JOIN
eav_attribute_option o
ON i.value = o.option_id
LEFT JOIN
eav_attribute_option_value v
ON o.option_id = v.option_id AND
v.store_id = 0
LEFT JOIN
catalog_product_entity e
ON i.entity_id = e.entity_id
WHERE
i.attribute_id = 83 AND
i.store_id = 0
ORDER BY `SKU` DESC