Mysql 如何通过SQL获取prestashop产品属性
我需要为prestashop网站创建一个报告,显示产品id、名称和库存。到目前为止,我只是通过以下查询完成了这项工作:Mysql 如何通过SQL获取prestashop产品属性,mysql,sql,database,relational-database,prestashop,Mysql,Sql,Database,Relational Database,Prestashop,我需要为prestashop网站创建一个报告,显示产品id、名称和库存。到目前为止,我只是通过以下查询完成了这项工作: SELECT product.id_product, product_lang.name, stock_available.quantity FROM ps_product product, ps_product_lang product_lang, ps_stock_available stock_available WHERE stock_available.id_prod
SELECT product.id_product, product_lang.name, stock_available.quantity
FROM ps_product product, ps_product_lang product_lang, ps_stock_available stock_available
WHERE stock_available.id_product = product.id_product
AND stock_available.id_product = product.id_product
AND product_lang.id_lang =1
AND product.reference = ''
AND product_lang.id_product = product.id_product
其输出类似于:
|===============================|
| id | name | stock |
| 1 | earring | 45 |
|===============================|
问题是,有些产品具有相同的名称和相同的ID,但属性不同,所以我得到的东西如下:
|===============================|
| id | name | stock |
| 1 | earring | 45 |
| 1 | earring | 76 |
| 1 | earring | 9 |
|===============================|
|================================================|
| id | name | attributes | stock |
| 1 | earring | yellow, short | 45 |
| 1 | earring | red, short | 76 |
| 1 | earring | red, long | 9 |
|================================================|
我需要添加一个新字段,显示区分它们的属性,因此最终输出如下:
|===============================|
| id | name | stock |
| 1 | earring | 45 |
| 1 | earring | 76 |
| 1 | earring | 9 |
|===============================|
|================================================|
| id | name | attributes | stock |
| 1 | earring | yellow, short | 45 |
| 1 | earring | red, short | 76 |
| 1 | earring | red, long | 9 |
|================================================|
但我无法弄清楚属性表(因为有几个属性表)如何与products表关联,以便向查询中添加适当的语句并获得所需的行为
如果有任何prestashop数据库专家在场,或任何能提供帮助的人,我将不胜感激。试试这个:
SELECT DISTINCT
p.id_product, pl.name, psa.quantity
FROM ps_product p
LEFT JOIN ps_product_lang pl ON (pl.id_product = p.id_product)
LEFT JOIN ps_stock_available psa ON (p.id_product = psa.id_product)
GROUP by p.id_product