Php SQL JOIN语句-导出前生成数据

Php SQL JOIN语句-导出前生成数据,php,mysql,sql,Php,Mysql,Sql,我试图在导出到csv格式之前生成数据,但im未能获得正确的数据 Table : products products_id | products_image 2 | a.jpg 1786 | b.jpg Table : product_description products_id | products_description | language_id 2 | BM description | 6

我试图在导出到csv格式之前生成数据,但im未能获得正确的数据

Table : products
products_id | products_image
    2       |    a.jpg
  1786      |    b.jpg

Table : product_description
products_id | products_description  | language_id
     2      |   BM description      |      6
   1786     |   BM description      |      6
   1786     |   CN description      |      4
   1786     |   EN description      |      1
我尝试获得如下输出:

products_id | products_image | p_description_6 | p_description_4 | p_description_1 |
    2       |     a.jpg      | BM description  |                 |                 |
    1786    |     b.jpg      | BM description  | CN description  | EN description  |
我当前的查询如下,但此查询未能在同一行中生成产品描述:

$select = "SELECT p.*, pd.* FROM products p LEFT JOIN product_description pd on p.products_id=pd.products_id group by p.products_id";
select 
  a.products_id,
  a.products_image,
  group_concat(b.products_description) as descriptions,
  group_concat(b.language_id) as lang_ids
from products a 
left join 
  product_description b on b.products_id = a.products_id
group by a.products_id
试一试

SELECT
    P.products_id,
    p.products_image,
    MAX(CASE WHEN language_id = 6 THEN products_description  END) AS p_description_6,
    MAX(CASE WHEN language_id = 4 THEN products_description  END) AS p_description_4,
    MAX(CASE WHEN language_id = 1 THEN products_description  END) AS p_description_1

FROM 
    products P 

INNER JOIN 
    product_description D ON P.products_id = D.products_id

GROUP BY 
    P.products_id,
    p.products_image

您可以使用
GROUP\u CONCAT
在同一行中生成产品描述:

$select = "SELECT p.*, pd.* FROM products p LEFT JOIN product_description pd on p.products_id=pd.products_id group by p.products_id";
select 
  a.products_id,
  a.products_image,
  group_concat(b.products_description) as descriptions,
  group_concat(b.language_id) as lang_ids
from products a 
left join 
  product_description b on b.products_id = a.products_id
group by a.products_id

可能不同的
语言id的数量是固定的还是可变的?语言id是固定的。如何在同一行中回显3个产品描述?