- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我如何使用 mysql 从 Magento 数据库中提取所有产品 ir、skus、产品名称(标题)和 desxription?我使用了以下查询并获得了除产品名称之外的所有属性。
SELECT e.entity_id, e.sku, eav.value AS 'description'
FROM catalog_product_entity e
JOIN catalog_product_entity_text eav
ON e.entity_id = eav.entity_id
JOIN eav_attribute ea
ON eav.attribute_id = ea.attribute_id
WHERE ea.attribute_code = 'description'
最佳答案
标题可以从一个商店 View 到另一个不同。描述也是如此。此外,一些商店 View 可以使用后端设置的默认值。
这是关于如何获取特定商店 View (id 1) 的所有产品所需数据(sku、名称、描述)的完整查询。
SELECT
`e`.`sku`,
IF(at_name.value_id > 0, at_name.value, at_name_default.value) AS `name`,
IF(at_description.value_id > 0, at_description.value, at_description_default.value) AS `description`
FROM
`catalog_product_entity` AS `e`
INNER JOIN
`catalog_product_entity_varchar` AS `at_name_default`
ON (`at_name_default`.`entity_id` = `e`.`entity_id`) AND
(`at_name_default`.`attribute_id` = (SELECT attribute_id FROM `eav_attribute` ea LEFT JOIN `eav_entity_type` et ON ea.entity_type_id = et.entity_type_id WHERE `ea`.`attribute_code` = 'name' AND et.entity_type_code = 'catalog_product')) AND
`at_name_default`.`store_id` = 0
LEFT JOIN
`catalog_product_entity_varchar` AS `at_name`
ON (`at_name`.`entity_id` = `e`.`entity_id`) AND
(`at_name`.`attribute_id` = (SELECT attribute_id FROM `eav_attribute` ea LEFT JOIN `eav_entity_type` et ON ea.entity_type_id = et.entity_type_id WHERE `ea`.`attribute_code` = 'name' AND et.entity_type_code = 'catalog_product')) AND
(`at_name`.`store_id` = 1)
INNER JOIN
`catalog_product_entity_text` AS `at_description_default`
ON (`at_description_default`.`entity_id` = `e`.`entity_id`) AND
(`at_description_default`.`attribute_id` = (SELECT attribute_id FROM `eav_attribute` ea LEFT JOIN `eav_entity_type` et ON ea.entity_type_id = et.entity_type_id WHERE `ea`.`attribute_code` = 'description' AND et.entity_type_code = 'catalog_product')) AND
`at_description_default`.`store_id` = 0
LEFT JOIN
`catalog_product_entity_text` AS `at_description`
ON (`at_description`.`entity_id` = `e`.`entity_id`) AND
(`at_description`.`attribute_id` = (SELECT attribute_id FROM `eav_attribute` ea LEFT JOIN `eav_entity_type` et ON ea.entity_type_id = et.entity_type_id WHERE `ea`.`attribute_code` = 'description' AND et.entity_type_code = 'catalog_product')) AND
(`at_description`.`store_id` = 1)
如果您希望它用于其他商店 View ,只需在以下几行中将值 1
替换为您想要的 id
(`at_name`.`store_id` = 1)
和
(`at_description`.`store_id` = 1)
我不知道你为什么需要这个 sql 格式。这是一个奇怪且很大的错误源。可以通过代码轻松搞定:
$collection = Mage::getResourceModel('catalog/product_collection')
->addAttributeToSelect(array('sku', 'name', 'description'));
foreach ($collection as $item) {
$sku = $item->getSku();
$name = $item->getName();
$description = $item->getDescription();
//do something with $sku, $name & $description
}
关于mysql - 如何仅使用 mysql 在 magento 中提取所有产品 id、skus、产品名称、描述?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23337745/
我正在实现 Stripe 结账系统。 每次我尝试调用结帐 View 时,我都会遇到一个奇怪的 javascript 错误:IntegrationError:结帐的 SKU 需要 name 属性。 在仪
我正在使用 Magento 1.4 版,我向销售订单网格添加了额外的网格列(名称和 sku),返回的数据是正确的,但我在分页和记录总数方面遇到问题,我的代码如下: 首先我编辑了Mage_Adminht
目前,站点搜索将搜索标记为在搜索中可见的项目的所有 skus。这一切都很好。 当客户知道单个子项的 sku 时,就会出现问题。因此,假设产品有 20 英尺和 25 英尺两种版本。我们会将它们放入一个可
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 已关闭 6 年前。 Improve
我如何使用 mysql 从 Magento 数据库中提取所有产品 ir、skus、产品名称(标题)和 desxription?我使用了以下查询并获得了除产品名称之外的所有属性。 SELECT e.en
我是一名优秀的程序员,十分优秀!