mysql - 导出 Prestashop 中具有属性的产品库存

标签 mysql prestashop

在我的商店中,产品 A 有不同的属性,让它们是:
白色(左12件)、黑色(左10件)、红色(左6件)
我已成功将所有产品及其类别、数量和属性导出到 csv 中,但我希望表格如下所示:
产品A/白色/12
产品A/黑色/10
产品A/红色/6
产品 B/尺码 S/5
产品 B/尺寸 M/6

因此,产品的每种组合都有可用的数量。 我现在的查询如下:

SELECT 
    p.id_product,
    p.id_category_default,
    GROUP_CONCAT(DISTINCT(cl.name) SEPARATOR ";") as categories,
    pa.reference,
    pl.name, 
    GROUP_CONCAT(DISTINCT(pal.name) SEPARATOR "; ") as combination, 
    p.price, 
    pq.quantity
FROM 7_ps_product p 
LEFT JOIN 7_ps_product_attribute pa ON (p.id_product = pa.id_product) 
LEFT JOIN 7_ps_stock_available pq ON (p.id_product = pq.id_product AND pa.id_product_attribute = pq.id_product_attribute) 
LEFT JOIN 7_ps_product_lang pl ON (p.id_product = pl.id_product) 
LEFT JOIN 7_ps_product_attribute_combination pac ON (pa.id_product_attribute = pac.id_product_attribute)
LEFT JOIN 7_ps_attribute_lang pal ON (pac.id_attribute = pal.id_attribute)
LEFT JOIN 7_ps_category_product cp ON (p.id_product = cp.id_product)
LEFT JOIN 7_ps_category_lang cl ON (cp.id_category = cl.id_category)
LEFT JOIN 7_ps_category c ON (cp.id_category = c.id_category)
WHERE pl.id_lang = 1 
AND pal.id_lang = 1 
GROUP BY pa.reference
ORDER BY p.id_product, pac.id_attribute

感谢您为帮助像我这样的人做出的巨大贡献!!

最佳答案

我已经像这样更改了您的查询,以便获得您需要的输出

SELECT 
   CONCAT(pl.name,' / ',pal.name,' / ', pq.quantity) AS required
FROM ps_product p 
LEFT JOIN ps_product_attribute pa ON (p.id_product = pa.id_product) 
LEFT JOIN ps_stock_available pq ON (p.id_product = pq.id_product AND pa.id_product_attribute = pq.id_product_attribute) 
LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product) 
LEFT JOIN ps_product_attribute_combination pac ON (pa.id_product_attribute = pac.id_product_attribute)
LEFT JOIN ps_attribute_lang pal ON (pac.id_attribute = pal.id_attribute)
LEFT JOIN ps_category_product cp ON (p.id_product = cp.id_product)
LEFT JOIN ps_category_lang cl ON (cp.id_category = cl.id_category)
LEFT JOIN ps_category c ON (cp.id_category = c.id_category)
WHERE pl.id_lang = 1 
      AND pal.id_lang = 1 
GROUP BY p.id_product,pal.name
ORDER BY p.id_product, pac.id_attribute

我更改了 GROUP BY 和 SELECT 字段。我认为这就是您需要的答案。

关于mysql - 导出 Prestashop 中具有属性的产品库存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31690685/

相关文章:

php - 在 prestashop 中检索当前页面的不同语言的 URL

三引号内的 Python 参数

php - 在 prestashop 中拆分 Mailalerts 模块收件人

prestashop - 如何在 prestashop 中获取当前 Controller 名称?

mysql - 使用 where 计算行数

twitter-bootstrap - prestashop 1.6 使用 bootstrap 插件 - Modal

php - Prestashop 从其 id 获取产品属性

PHP MYSQL 从多个列中获取最小值

java - 如何在MySQL中动态地将行转换为列并在Swing中显示结果

c# - 从 c# 连接到 mysql 给我空异常