由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - Common Table Expression 问题
相关主题
最近写了不少SQL script,请大牛评价下属于什么水平有包子!sql procedure 来rank不同table里面的数据
问个 sp_send_dbmail 的问题紧急求助, 关于SQL Server
向大牛请教 query问题啊!SQL combine two tables into one table and add a new column
mysql 问题 (转载)error of executing SQL query of string concatenation (转载
请问这个query怎么做如何决定index
how to write this query也問 Common Table Expression 问题
Access 里面两个 column不一样的table 能combine 到一起吗?SQL add some columns into a table from another table (转载
在没有Key的情况下,怎么update一个table的内容到另一个table?能提供几个看似简单 实际不容易的关于数据库 SQL的问题么 (转载)
相关话题的讨论汇总
话题: prop1话题: prop2话题: table话题: insert话题: values
进入Database版参与讨论
1 (共1页)
h****t
发帖数: 22
1
一个递归关系表
ID InheritedFromID
1 0
2 1
3 2
一个object属性表
ID Prop1 prop2
1 a0 a1
1 a2 a3
2 b0 b1
2 b2 b3
3 c0 c1
一个object不具有的属性表
ID Prop1 Prop2
2 a0 a1
3 b0 b1
我需要列出所有object的属性,得到下面的结果
ID Prop1 Prop2
1 a0 a1
1 a2 a3
2 a2 a3
2 b0 b1
2 b2 b2
3 a2 a3
3 b2 b2
3 c0 c1
我现在是使用CTE列出了所有的属性组合,然后再去除掉不具有的属性。
请问网上高人,能否用单一的CTE就得到我要的结果?谢谢。
h****t
发帖数: 22
2
在CTE中使用except解决了,谢谢。
B*****g
发帖数: 34098
3
share your solution please

【在 h****t 的大作中提到】
: 在CTE中使用except解决了,谢谢。
h****t
发帖数: 22
4

首先声明,我是作应用程序开发的,在这个版上贴query是在班门弄斧,让大家见笑了。
CREATE TABLE table1(id int,InheritedFromID int)
CREATE TABLE table2(id int,prop1 nvarchar(50),prop2 nvarchar(50))
CREATE TABLE table3(id int,prop1 nvarchar(50),prop2 nvarchar(50))
insert into table1 (id,InheritedFromID) values(1,0)
insert into table1 (id,InheritedFromID) values(2,1)
insert into table1 (id,InheritedFromID) values(3,2)
insert into table2(id,prop1,prop2) values(1,'a0','a1')
insert into table2(id,prop1,prop2) values(1,'a2','a3')
insert into table2(id,prop1,prop2) values(2,'b0','b1')
insert into table2(id,prop1,prop2) values(2,'b2','b3')
insert into table2(id,prop1,prop2) values(3,'c0','c1')
insert into table3(id,prop1,prop2) values(2,'a0','a1')
insert into table3(id,prop1,prop2) values(3,'b0','b1')
with table4(id,prop1,prop2)
as
(
select t2.id,prop1,prop2 from table2 t2
inner join table1 t1 on t1.id = t2.id
union all
(
select t1.id,prop1,prop2 from table1 t1
inner join table4 t4 on t1.InheritedFromID = t4.id
except
select t3.id,t3.prop1,t3.prop2 from table3 t3
inner join table1 t1 on t1.id = t3.id
)
)
select * from table4 order by id,prop1

【在 B*****g 的大作中提到】
: share your solution please
1 (共1页)
进入Database版参与讨论
相关主题
能提供几个看似简单 实际不容易的关于数据库 SQL的问题么 (转载)请问这个query怎么做
一个有关查询的语句how to write this query
SQL question...Access 里面两个 column不一样的table 能combine 到一起吗?
SQL question: update a field在没有Key的情况下,怎么update一个table的内容到另一个table?
最近写了不少SQL script,请大牛评价下属于什么水平有包子!sql procedure 来rank不同table里面的数据
问个 sp_send_dbmail 的问题紧急求助, 关于SQL Server
向大牛请教 query问题啊!SQL combine two tables into one table and add a new column
mysql 问题 (转载)error of executing SQL query of string concatenation (转载
相关话题的讨论汇总
话题: prop1话题: prop2话题: table话题: insert话题: values