如有如下几条数据
中国 北京
中国 上海
中国 深圳
美国 XX
美国 YY
我想查询出来的结果为 两个字段 如下
中国 北京,上海,深圳
美国 XX,YY
这个可以实现吗
CREATE DATABASE test;
CREATE TABLE city(
Id INT,
pname VARCHAR(50),
name VARCHAR(50)
);
USE test;
INSERT INTO common.city (Id, pname, name)
VALUES (1, '中国','北京');
INSERT INTO common.city (Id, pname, name)
VALUES (2, '中国','上海');
INSERT INTO common.city (Id, pname, name)
VALUES (3, '美国','XX');
INSERT INTO common.city (Id, pname, name)
VALUES (4, '美国','YY');
SELECT pname,GROUP_CONCAT(name) AS name FROM city GROUP BY pname
以上为mysql,如果是其他数据库,使用的函数不一样而已。orcale中使用wmsys.wm_concat,根据数据库类型不一样,函数不一样
SELECT t.county,GROUP_CONCAT(t.city) city FROM test
t
GROUP BY t.county
上答案中:test为表名称
可以实现 http://blog.163.com/hr_test/blog/static/164852107201081695913309/
http://www.cnblogs.com/CrazyWill/archive/2006/02/20/334247.html