我需要帮助编写mysql查询。我有两张桌子,一个父母,一个孩子。
父表:garments
`garment_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`description` text,
PRIMARY KEY (`garment_id`)
子表:garment_images
`id` int(11) NOT NULL AUTO_INCREMENT,
`garment_id` int(11) NOT NULL,
`filename` varchar(100) NOT NULL,
`order` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
我想查询所有服装,并在'garment_images'表中显示每件商品的第一张图片。
答案 0 :(得分:0)
这应该非常接近:
SELECT G.*, (
SELECT GI.id, GI.filename from garment_images as GI
WHERE GI.garment_id = G.garment_id
ORDER BY GI.order DESC
LIMIT 1)
FROM garments as G
答案 1 :(得分:0)
解决问题:
第1步:
select gi.*
from
garment_images as gi
inner join (
select min(id) as minId
from garment_images
group by garment_id
) as a on gi.garment_id = a.minId
我将给你留下第二步(提示:将上面查询中的数据加入你的服装表)
答案 2 :(得分:0)
如果“第一张图片”是order = 1
(SQL Fiddle)
SELECT * from garments g JOIN garment_images gi
ON g.garment_id = gi.garment_id
WHERE gi.order = 1