2013-12-20 124 views
1

我正在将产品添加到数据库中,它有3个表,分别是products,product_imagescategories。现在我正在使用连接在前端和后端显示。我使用一个查询,它工作正常,直到表中每个产品只有一个图像。但现在我有单个产品的多个图像,所以如何修改我的查询任何建议谢谢。显示来自数据库的单一图像

$sql = "SELECT p.id,p.product_title,p.product_price,p.product_quantity,p.status, 
     pi.product_img, 
     c.cat_name 
     FROM product p 
     LEFT JOIN product_images pi ON pi.product_id = p.id 
     LEFT JOIN categories c ON c.id = p.category_id 
    "; 

如果我使用此查询它取决于有多少图像product_images表是否有显示多个时代的产物。现在我想2 different queries一个用于后手,我必须只显示一个图像和一个前端,我必须显示所有图像。再次感谢。

回答

1

要使用GROUP_CONCAT显示所有图片...

$sql = "SELECT p.id,p.product_title,p.product_price,p.product_quantity,p.status, 
    GROUP_CONCAT(pi.product_img SEPARATOR ', '), 
    c.cat_name 
    FROM product p 
    LEFT JOIN product_images pi ON pi.product_id = p.id 
    LEFT JOIN categories c ON c.id = p.category_id 
    GROUP BY p.id,p.product_title,p.product_price,p.product_quantity,p.status, c.cat_name 
"; 

要显示一个图像,您可以使用MINMAX

$sql = "SELECT p.id,p.product_title,p.product_price,p.product_quantity,p.status, 
MIN(pi.product_img), 
c.cat_name 
FROM product p 
LEFT JOIN product_images pi ON pi.product_id = p.id 
LEFT JOIN categories c ON c.id = p.category_id 
GROUP BY p.id,p.product_title,p.product_price,p.product_quantity,p.status, c.cat_name 
"; 
+0

由于很多公司工作的伟大 –

+0

高兴它帮助。如果你能够,请标记为已回答:) –

相关问题