我需要为 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_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 |
|================================================|
但我无法弄清楚属性表(因为有多个属性表)如何与产品表相关,以便向查询添加正确的语句并获得所需的行为。
如果周围有任何 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
关于mysql - 如何通过SQL获取prestashop产品属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51085548/