我尝试在导出到csv格式之前生成数据但是我无法获得正确的数据。
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 |
我当前的查询如下,但此查询无法在同一行中生成product_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";
答案 0 :(得分:1)
尝试类似的事情,
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
答案 1 :(得分:0)
您可以使用GROUP_CONCAT
在同一行生成product_description:
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