SELECT
p.price,
h.name AS hotel_name
FROM
prices p
LEFT JOIN hotels h ON p.hotel_id = h.id
WHERE
p.city = 'boedapest'
AND p.hotel_id IS NOT NULL
GROUP BY p.name
ORDER BY p.price ASC
结果:
26埃本酒店布达佩斯
27个船级社
28宜必思布达佩斯英雄广场
29特色:Hunguest Hotel Griff酒店
30酒店托马斯
31 NH布达佩斯
31鲁宾健康会议酒店
32本库兹酒店
33大西洋
33 Delibab酒店布达佩斯奇怪的MySQL GROUP BY/ORDER BY行为
完全一样与GROUP BY结果注释:
24 Gerand Hotel Ventura酒店
25特色:Hunguest酒店悬铃木
26大道城市宾馆
26的Tulip Inn千年布达佩斯
26埃本酒店布达佩斯
27个船级社
27巴洛斯
28酒店托马斯
28酒店特色:Hunguest格里夫
28宜必思布达佩斯英雄广场
基本上我想按名称组,但保留ORDER BY。由于24小于26,我预计它会在26之前出现。请记住,我只显示前10个结果,以保持帖子的简短。
我使用的是:SELECT VERSION() - > 5.1.37
如果你没有使用任何聚合函数,你为什么使用'GROUP BY'? – 2010-01-13 05:40:48
所以我可以GROUP_CONCAT价格。例如: GROUP_CONCAT(CONCAT(transport,'||',price,'||',p.url)SEPARATOR'(|)')AS价格 为了简单起见,我省略了GROUP_CONCAT。 – 2010-01-13 05:50:29