由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - 请教一个sql问题
相关主题
菜鸟问题,急A rookie's query question
sort two same tables SQL but different results问个sql/ ssis的问题 谢谢!
SQL copy a table into a new table and add a new column一个oracle performance 的问题。
请教一个query 优化的问题(filter keyword)请问个join的问题
Access 里面两个 column不一样的table 能combine 到一起吗?高手请进
Cascade delete, update 的问题(MS SQL)any group function reutrn null if there is null value?
sql query help问个 sp_send_dbmail 的问题
How to Import a Datatable as fast as possible?sql 题目求助
相关话题的讨论汇总
话题: col话题: table1话题: col1话题: table2话题: col2
进入Database版参与讨论
1 (共1页)
x******m
发帖数: 736
1
table1
id col1 col2 col3...
table2
col_id col_name
1 col1
2 col2
3 col3
现在想用sql生成table3,
id col_name col_value
其中id,col_vaule来自于table1,col_name来自于table2.
多谢。
s**********o
发帖数: 14359
2
PIVOT一下就可以了
x******m
发帖数: 736
3
sorry没说清楚。
要生成的table3中的col不是按照原来的顺序 是乱的 而且还有一列来显示col id 所以
需要query table2以获取col id

【在 s**********o 的大作中提到】
: PIVOT一下就可以了
n***l
发帖数: 143
4
I am new too. Try use create view:
create view table3
select id, col_name, col-value
from table1
join table 2
where table1.id = table2.col_id
x******m
发帖数: 736
5
呵呵,你没看清楚我问的问题。id和col id不是一个东西。

【在 n***l 的大作中提到】
: I am new too. Try use create view:
: create view table3
: select id, col_name, col-value
: from table1
: join table 2
: where table1.id = table2.col_id

B*****g
发帖数: 34098
6
什么数据库?答题有大包子吗?

【在 x******m 的大作中提到】
: table1
: id col1 col2 col3...
: table2
: col_id col_name
: 1 col1
: 2 col2
: 3 col3
: 现在想用sql生成table3,
: id col_name col_value
: 其中id,col_vaule来自于table1,col_name来自于table2.

x******m
发帖数: 736
7
工作中遇到的db 我不是专门的db admin只是兼顾管理一下,所以不是很熟SQL。我看看
我还有没有包子啊

【在 B*****g 的大作中提到】
: 什么数据库?答题有大包子吗?
B*****g
发帖数: 34098
8
oracle or sql server or mysql?

【在 x******m 的大作中提到】
: 工作中遇到的db 我不是专门的db admin只是兼顾管理一下,所以不是很熟SQL。我看看
: 我还有没有包子啊

x******m
发帖数: 736
9
postgresql

【在 B*****g 的大作中提到】
: oracle or sql server or mysql?
B*****g
发帖数: 34098
10
只会oracle的

【在 x******m 的大作中提到】
: postgresql
相关主题
Cascade delete, update 的问题(MS SQL)A rookie's query question
sql query help问个sql/ ssis的问题 谢谢!
How to Import a Datatable as fast as possible?一个oracle performance 的问题。
进入Database版参与讨论
s**********o
发帖数: 14359
11
你的TABLE1的各个COLUMN NAME是什么呢,我觉得TABLE1本身就有问题
TABLE 1,如果是这样一个TABLE,本身就没有意义
ID COL1 COL2 COL3
1 小甲 老乙 大丙
2 小A 老B 大C
3 张三 李四 王二麻子
显然,虽然叫COL1, COL2. COL3,但肯定是有些联系,其实是这样的
COL1=学生
COL2=老师
COL3=家长
其实TABLE1应该是这样
ID 学生 老师 家长
1 小甲 老乙 大丙
2 小A 老B 大C
3 张三 李四 王二麻子
如果TABLE1建好的话,TABLE2和TABLE3都没什么意义,如果你是CLEANUP
直接SELECT COL1 AS ID1, COL2 AS ID2, COL3AS ID3 FROM TABLE1
因为是DDL,你的COLUMN数肯定是一定的,不可能是N个,只能一一列举
不过合并后的TABLE3还是没什么意义,因为ID1 ID2本身没有意义

【在 x******m 的大作中提到】
: sorry没说清楚。
: 要生成的table3中的col不是按照原来的顺序 是乱的 而且还有一列来显示col id 所以
: 需要query table2以获取col id

B*****g
发帖数: 34098
12
google "query_to_xml"
x******m
发帖数: 736
13
errrrrrrrrrrrrrr
在初级的DBA,也不会这么命名吧。我只是简单说col1,并不是column1的header就是
col1.哪个DBA要是这么命名,估计离丢工作也不远了。。。。
这样说吧,table1的attributes在数据库中被分成好几类,比如,身高,体重属于body
index,心跳,血压属于health index(table2)。
要生成的table3,就是id attribute 在加上 attribute的类别。
其实这就是个sql问题,跟这些都无关。
实在不行,我就把table output出来,几行python code就搞定。就是想借这个机会看
看sql有没有好的解法。

【在 s**********o 的大作中提到】
: 你的TABLE1的各个COLUMN NAME是什么呢,我觉得TABLE1本身就有问题
: TABLE 1,如果是这样一个TABLE,本身就没有意义
: ID COL1 COL2 COL3
: 1 小甲 老乙 大丙
: 2 小A 老B 大C
: 3 张三 李四 王二麻子
: 显然,虽然叫COL1, COL2. COL3,但肯定是有些联系,其实是这样的
: COL1=学生
: COL2=老师
: COL3=家长

s**********o
发帖数: 14359
14
这个可以替代PIVOT,但是比较慢

【在 B*****g 的大作中提到】
: google "query_to_xml"
B*****g
发帖数: 34098
15
你来写个pivot来解决楼主问题

【在 s**********o 的大作中提到】
: 这个可以替代PIVOT,但是比较慢
w****w
发帖数: 521
16
用python或其他语言,根据表2产生n个insert into select语句,再一起跑。
s**********o
发帖数: 14359
17
原来不就是这样吗
ID 身高 体重 职业
1 1米八 300斤 学生
2 1米七 200斤 老师
然后PIVOT成这样,TABLE2是干嘛的?你能不能形象点?这像是个等级问题
但没有列子不好懂
1 身高,1米八
1 体重,300斤
1 职业,学生
2 身高,1米七
2 体重,200斤
2 职业,老师
x******m
发帖数: 736
18
table2用来表明table1中每个col的category,比如你的table
id col value col_id category
1 身高,1米八 3 body_index
1 体重,300斤 4 body_index
1 职业,学生 1 other_index
2 身高,1米七 3 body_index

【在 s**********o 的大作中提到】
: 原来不就是这样吗
: ID 身高 体重 职业
: 1 1米八 300斤 学生
: 2 1米七 200斤 老师
: 然后PIVOT成这样,TABLE2是干嘛的?你能不能形象点?这像是个等级问题
: 但没有列子不好懂
: 1 身高,1米八
: 1 体重,300斤
: 1 职业,学生
: 2 身高,1米七

a******t
发帖数: 125
19
楼主不如一次道详细了,菜鸟看着好痛苦的
c****s
发帖数: 10
20
这个应该是unpivot。
sql server的话
select * from (
SELECT ID, cname , cvalue
FROM
(SELECT *
FROM a1) p
UNPIVOT
(cvalue FOR cname IN
(c1,c2,c3)
)AS unpvt
) b where cname in ( select cname from a2)

【在 B*****g 的大作中提到】
: 你来写个pivot来解决楼主问题
1 (共1页)
进入Database版参与讨论
相关主题
sql 题目求助Access 里面两个 column不一样的table 能combine 到一起吗?
谁能帮我看看这个Insert语句要怎么改一下?Cascade delete, update 的问题(MS SQL)
紧急求助, 关于SQL Serversql query help
请教一个SQL的问题How to Import a Datatable as fast as possible?
菜鸟问题,急A rookie's query question
sort two same tables SQL but different results问个sql/ ssis的问题 谢谢!
SQL copy a table into a new table and add a new column一个oracle performance 的问题。
请教一个query 优化的问题(filter keyword)请问个join的问题
相关话题的讨论汇总
话题: col话题: table1话题: col1话题: table2话题: col2