2007-09-25
一维表变二维表。
关键字: SQL
数据库里面的值
1 50 a
1 22 b
1 33 c
2 11 a
2 12 b
2 24 c
我要做成这样的
a b c
1 50 22 33
2 11 12 24
你知道这样的sql怎么写吗?
mysql> select * from teamtest;
+------+------+------+
| id | name | type |
+------+------+------+
| 1 | mao | a |
| 1 | da | b |
| 1 | jun | c |
| 2 | java | a |
| 2 | eye | b |
| 2 | com | c |
+------+------+------+
6 rows in set (0.00 sec)
mysql> select aa.id ,aa.name , bb.name,cc.name
-> from (select id, name from teamtest where type='a') aa ,
-> (select id , name from teamtest where type ='b') bb,
-> (select id , name from teamtest where type ='c') cc
-> where aa.id = bb.id and bb.id =cc.id;
+------+------+------+------+
| id | name | name | name |
+------+------+------+------+
| 1 | mao | da | jun |
| 2 | java | eye | com |
+------+------+------+------+
select dd.id ,aa.name , bb.name,cc.name
from (select id, name from teamtest where type='a') aa ,
(select id , name from teamtest where type ='b') bb,
(select id , name from teamtest where type ='c') cc,
(select id from teamtest group by id ) dd ,
dd left jion in aa
where dd.id = aa.id or dd.id = bb.id or dd.id = cc.id
1 50 a
1 22 b
1 33 c
2 11 a
2 12 b
2 24 c
我要做成这样的
a b c
1 50 22 33
2 11 12 24
你知道这样的sql怎么写吗?
mysql> select * from teamtest;
+------+------+------+
| id | name | type |
+------+------+------+
| 1 | mao | a |
| 1 | da | b |
| 1 | jun | c |
| 2 | java | a |
| 2 | eye | b |
| 2 | com | c |
+------+------+------+
6 rows in set (0.00 sec)
mysql> select aa.id ,aa.name , bb.name,cc.name
-> from (select id, name from teamtest where type='a') aa ,
-> (select id , name from teamtest where type ='b') bb,
-> (select id , name from teamtest where type ='c') cc
-> where aa.id = bb.id and bb.id =cc.id;
+------+------+------+------+
| id | name | name | name |
+------+------+------+------+
| 1 | mao | da | jun |
| 2 | java | eye | com |
+------+------+------+------+
select dd.id ,aa.name , bb.name,cc.name
from (select id, name from teamtest where type='a') aa ,
(select id , name from teamtest where type ='b') bb,
(select id , name from teamtest where type ='c') cc,
(select id from teamtest group by id ) dd ,
dd left jion in aa
where dd.id = aa.id or dd.id = bb.id or dd.id = cc.id
评论
抛出异常的爱
2007-09-27
需求就是需求,
给它完成了就可以了。
不要再想深了。
再有改就再变。
我本不想用sql来作这件事的,
但这种变化是时时的。
得用job来作不能用java定时器。。。。所以。。。
给它完成了就可以了。
不要再想深了。
再有改就再变。
我本不想用sql来作这件事的,
但这种变化是时时的。
得用job来作不能用java定时器。。。。所以。。。
webmaker
2007-09-26
我遇到过这样的需求,需要对查询结果进行转置,不知道楼主有没有好的办法,貌似和上面的这个问题差不多...
webmaker
2007-09-26
发表评论
- 浏览: 216101 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
我的相册
长椅
共 39 张
共 39 张
最近加入圈子
链接
最新评论
-
到底要招什么样子的人?
那到底要什么样的人啊?你的重点呢?你想表达什么?
-- by xiaoyi829 -
到底要招什么样子的人?
努力吧!什么都是从不懂到懂,懂到精通!
-- by ada1230 -
DBA数据库字典
懒人。。。半仙。。。
-- by YuLimin -
天狗食日
看了。。。英雄(美剧)。。。。 之后就非常想要见识一下日食了 谢谢
-- by 抛出异常的爱 -
天狗食日
按照月亮运行规律来讲,一个月就会出现一次日食,并且今年出现日食时间和明年差不多, ...
-- by ddd






评论排行榜