mysql - 如何通过SQL获取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_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/

相关文章:

mysql - 获取囚犯访客计数

c++ - 如何将 C++ MySQL 连接器库链接到 Cmake?

MySQL更新语句造成副作用

sql - 如果为空,请选择不同的聚合值?

php - CakePHP - 访问多个表和类别的页面

python - 数据表 python flask

MySQL COUNT 查询返回行中的总值

mysql - SQL查询多个系统上的相同表

php - 一张表多字段还是两表少字段?

java - 使用 JDBC 的多数据库连接(如 DB2、MySQL 等)的设计方法