【问题标题】:How can I group_concat this?我怎样才能 group_concat 这个?
【发布时间】:2015-09-28 20:15:26
【问题描述】:

我试图让这个查询工作,基本上它是一些产品的 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,但在该表中,每个附加产品图像都有多行,其中一些没有附加图像,我该如何使用 group_concat 或其他一些使$row 附加每个图像的方法,如果它们存在于每个产品中。图片在列"image_url"like

product_id image_url

    22           none.jpg
    22           abcd.jpg
    22           cdfg.jpg

【问题讨论】:

    标签: mysql group-concat


    【解决方案1】:

    所以我设法简化了一点。

    基本上我正在使用

    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']' 
    } 
    

    那么我相信我可以为每个产品获取这些图像并将它们用于我的其他数组,对吗?

    【讨论】:

      猜你喜欢
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-28
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 2020-08-14
      相关资源
      最近更新 更多