我怎么能这个group_concat呢?

时间:2015-09-28 20:15:26

标签: mysql group-concat

我试图让这个查询起作用,基本上它是一些产品的CSV导出,其属性分布在多个表中。 我设法获得了我需要导出的所有内容,除了产品可能具有的其他图像,这些图像位于单独的表中,每个产品的每个图像都是该表中的新行。 这就是我现在所拥有的

SELECT DISTINCT p.product_id,
           pd.name,
           cd.name AS catname,
           pd.description,
           p.price,
           pa.text AS qty,
           p.mimage,
           ps.price AS pricespecial


    FROM product p
    LEFT JOIN product_description pd
    ON p.product_id = pd.product_id
    LEFT JOIN product_to_category p2c
    ON p.product_id = p2c.product_id
    LEFT JOIN category_description cd
    ON p2c.category_id = cd.category_id
    LEFT JOIN product_attribute pa
    ON p.product_id = pa.product_id
    LEFT JOIN product_special ps
    ON p.product_id = ps.product_id

我使用while($row = $result->fetch_assoc()){ fputcsv($f,$row);制作CSV。现在我还需要将$row中的其他图片转换为CSV,但是在该表格中,每个附加产品图片都有多行,其中一些没有其他图片,我该如何使用{{ 1}}或其他一些方法使group_concat附加每个图像,如果它们存在于每个产品中。图像位于$row列中,如

"image_url"

1 个答案:

答案 0 :(得分:0)

所以我设法简化了一下。

基本上我正在使用

while($row = $result->fetch_assoc()){

然后我创建一个数组并将我的行放在那里

$values = array($row['product_id'],$row['name'],$row['catname'],$row['description'],etc);

如何在while循环中构造一个类似

的foreach循环
foreach $row['product_id'] {
  $sql = "SELECT GROUP_CONCAT(images) FROM table WHERE product_id='$row['product_id']' 
} 

然后我相信我可以为每个产品获取这些图像并在其他阵列中使用它们,对吗?