Magento 如何通过mysql从厂商值id中获取产品厂商名称?
我知道如何获取产品制造商id,但我需要使用MySQL的产品制造商id和名称Magento 如何通过mysql从厂商值id中获取产品厂商名称?,magento,Magento,我知道如何获取产品制造商id,但我需要使用MySQL的产品制造商id和名称 75是获取产品制造商id的属性id 有人能帮忙吗 我希望它是SQL格式的。首先,我想把它弄清楚。 如果将产品作为对象,则可以获得制造商id,如下所示: $product->getManufacturer(); 至于姓名: $product->getAttributeText('manufacturer'); 现在,对于sql部分,我不知道您为什么需要它,但现在开始。 假设产品id为10。 尝试此查询 SE
75
是获取产品制造商id的属性id
有人能帮忙吗
我希望它是SQL格式的。首先,我想把它弄清楚。
如果将产品作为对象,则可以获得制造商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\u id=0
和i.store\u id=0
中的0替换为您商店id的值。0表示默认值。非常好的代码,谢谢
在我的Magento 2.3.1上,我刚刚将属性_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
我想磁电机有一个固定的模式,或者我们没有机会…非常感谢。我还有一个问题,不是吗?不同商店的价值是唯一的?我不确定我是否理解你的问题,但我还是会试试。在这些字段的组合上,
catalog\u product\u entity\u int
上有一个唯一的索引:entity\u id
,attribute\u id
,store\u id
。因此,对于产品和商店id,您可以为属性\u id
指定一个值。该值在表catalog\u product\u entity\u int
中没有任何约束,因为每个存储中制造商的实体id和属性id不同,因此该查询无法工作。但是,SQL代码确实命中了eav\u属性\u选项\u值
,这就是制造商名称所在的位置+1.谢谢你的努力!