我有三个表:省_Table,City_table和Town_table我想选择它们:
我用这个
SELECT p.province_id,p.province_name,c.city_id,t.town_id,
Group_concat(c.city_name) city_name,
Group_concat(t.town_name) town_ name
FROM province_tbl p
left JOIN city_tbl c
ON c.province_id = p.province_id
left JOIN town_tbl t
ON t.town_id = c.town_id
GROUP BY p.province_name,c.city_name,t.town_name order by p.province_name asc
它的工作但输出是:
Province Name, City Name, Town Name
我想要以下输出:
Province Name
Province Name, City Name
Province Name, City Name, Town Name
请参阅此示例zoopla.co.uk 在搜索栏中输入London。 打开我需要的下拉结果。如下。
London
London Blackfriars Station
London Blackfriars Station 2
London Blackfriars Station, Block 1
London Blackfriars Station, Block 2
London Blackfriars Station, Block 3
请详细回答,因为我是MySql的新手。
答案 0 :(得分:0)
尝试在WITH ROLLUP
子句的末尾添加GROUP BY
- 就像这样:
...
GROUP BY p.province_name,c.city_name,t.town_name WITH ROLLUP
如果要更改默认排序顺序,则需要将整个查询视为子查询,并按外部查询中的相关列进行排序。