ORDER BY p.display_order和i.img显示具有特定图像顺序的缩略图

时间:2016-05-12 06:21:08

标签: php mysql codeigniter

我想在产品类别页面上获取产品缩略图,需要显示每个产品的第1个缩略图图像。现在最后一张图片正在显示。 这是我的数据库结构的屏幕截图

编辑:

现在表格格式为截图,有4张图片,订单1,2,3,4我想用img_order 1获取图片。

enter image description here

当我运行sql查询

 SELECT i.img_order,p.*, i.product_id, i.dirName, i.img FROM products p inner JOIN product_images i ON i.product_id = p.id WHERE p.status = 1 and i.product_id=329 AND i.type = 'Static' GROUP BY i.product_id ORDER BY i.img_order asc

它给出了错误的结果,请看截图

enter image description here

但我想用img_order 1来获取图像。

3 个答案:

答案 0 :(得分:1)

尝试这样的事情:

SELECT pi.img_order,p.*, pi.product_id, pi.dirName, pi.img 
FROM product as p
LEFT JOIN product_image as pi ON pi.product_id = p.id
JOIN
 ( SELECT id,product_id, MIN(img_order) minVal
   FROM product_image GROUP BY product_id
 ) i
ON pi.img_order = i.minVal AND i.id = pi.id;

小提琴是here

答案 1 :(得分:0)

我找到了带有以下sql查询的解决方案:

SELECT i.img_order,p.*, i.product_id, i.dirName, i.img FROM products p inner JOIN product_images i ON i.product_id = p.id WHERE p.status = 1 and i.product_id=329 AND i.type = 'Static' GROUP BY i.product_id ORDER BY i.img_order asc

感谢所有投票

答案 2 :(得分:-1)

你有没有试过这样的东西。

检查所有行

 $query = $this->db->query("YOUR QUERY");

 foreach ($query->result_array() as $row)
 {
    echo $row['title'];
    echo $row['name'];
    echo $row['body'];
  }