表goods: gid | name
1 xde
2 dfdd
3 东方古国风格
表glist: lid | gid | subname | displayorder
1 1 三三四四 2
2 1 扫扫地 12
3 2 日方非法 10
4 2 到噶多个 1
我现在想取出glist表中的lid为2,3两项。
但是SELECT g . * , f . * FROM goods g LEFT JOIN glist f ON g.gid = f.gid ORDER BY g.displayorder DESC limit 2 这个sql取出的结果是错误的。按照goods中的gid升序 取出两条 同时也取出在glist中属于相应gid的一条(取displayorder值最大的一个)
结果应为goods中的1,2 同时也取出glist中的2,3
1 xde
2 dfdd
3 东方古国风格
表glist: lid | gid | subname | displayorder
1 1 三三四四 2
2 1 扫扫地 12
3 2 日方非法 10
4 2 到噶多个 1
我现在想取出glist表中的lid为2,3两项。
但是SELECT g . * , f . * FROM goods g LEFT JOIN glist f ON g.gid = f.gid ORDER BY g.displayorder DESC limit 2 这个sql取出的结果是错误的。按照goods中的gid升序 取出两条 同时也取出在glist中属于相应gid的一条(取displayorder值最大的一个)
结果应为goods中的1,2 同时也取出glist中的2,3
FROM glist
LEFT JOIN goods
ON glist.gid=goods.gid
GROUP BY glist.gid
ORDER BY glist.gid DESC
inner join goods b on a.gid=b.gid
where not exists(select 1 from glist where a.gid=gid and a.displayorder<displayorder)
[征集]分组取最大N条记录方法征集,及散分....