您可以使用子查询来获取该min(nu)
值,然后将其连接回您的p_image
表,以确保您返回正确的图像:
select p.id,
p.name,
i.img,
r.minnu
from products p
left join
(
select min(nu) MinNu, product
from p_images
group by product
) r
on p.id=r.product
left join p_images i
on r.minnu = i.nu
and r.product = i.product
order by i.nu;
请参阅带有演示的 SQL Fiddle
结果:
| ID | NAME | IMG | MINNU |
------------------------------
| 25 | shoe | a2.jpg | 0 |
| 26 | elbs | r3.jpg | 1 |
您可以添加一个ORDER BY
该值。由于您使用的是 order by 子句,因此您可以使用别名,也可以将聚合放在其中。
按别名排序:
SELECT p.id, p.name, r.img, min(r.nu) MinNu FROM products p left join p_images r on p.id=r.product group by p.id order by MinNu
按聚合排序:
SELECT p.id, p.name, r.img, min(r.nu) MinNu FROM products p left join p_images r on p.id=r.product group by p.id order by min(r.nu);
请参阅带有两个查询的演示的SQL Fiddle
结果是:
| 身份证 | 姓名 | 图片 | 闽南语 | ------------------------------ | 25 | 鞋| a1.jpg | 0 | | 26 | 矮人 | r3.jpg | 1 |