2015-09-28 152 views
0

我试图让这个查询工作,基本上它的CSV导出的一些产品的属性分布在多个表中。 我设法得到我需要的所有东西,除了产品可能具有的附加图像之外,这些图像位于单独的表格中,每个产品的每个图像都是该表格中的新行。 以下是我对现在我该如何group_concat这个?

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"

product_id image_url 

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

回答

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

然后我相信我可以得到这些图像的每个产品,并在我的其他阵列使用它们,r飞行?