我正在将产品添加到数据库中,它有3个表products
,product_images
和categories
。现在我正在使用连接在前端和后端显示。我使用一个查询,它工作正常,直到表中的每个产品只有一个图像。但现在我有单个产品的多个图像,所以如何修改我的查询任何建议谢谢。
$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
一个用于后手,我必须只显示一个图像,一个用于前端,我必须显示所有图像。再次感谢。
答案 0 :(得分: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
";
要显示一张图片,您可以使用MIN
或MAX
$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
";