select *
from (
select B.id
,A.name1
,B.name2
from catalog1 A
join catalog2 B on B.parent_id=A.id1
union
select id1,name1,name1 from catalog1
)t
order by id
from (
select B.id
,A.name1
,B.name2
from catalog1 A
join catalog2 B on B.parent_id=A.id1
union
select id1,name1,name1 from catalog1
)t
order by id
解决方案 »
- 本人菜鸟,请教下大家这个sql语句怎么写?
- 怎么用SQL2008打开SQL2005数据库?
- 请教一个存储过程返回固定值的问题,
- sql server 2005 以上版本判断表是否存在的问题
- 请问如何合并?
- 用java调用SLQ Server存储过程,如何在存储过程中多次执行动态SQL而在最后那句返回给调用者
- sql server2005, 作表更改等操作时出现".net framework data provider is not found..."字样的错误提示
- 请问:一个数据库取出的记录的排序问题。急,在线等待。
- 较交叉表难的报表,该如何做或能给个思路。
- 非常感谢~~~~~难题解决了:)但怪题还是不明白 存储过程如下
- 奇怪,我的表打不开了!!!
- 出现在乱码
(select id=a.id2,
b.name1,
a.name2
from catalog2 a left join catalog1 b on b.id1=a.parent_id
union all
select * from catalog1
) a order by id
create table catalog1(id1 varchar(10),name1 varchar(20) )
insert catalog1 select 'A','亚洲'
insert catalog1 select 'B','欧洲'
create table catalog2(id2 varchar(10),name2 varchar(20),parent_id varchar(10) )
insert catalog2 select 'A1','东亚','A'
insert catalog2 select 'A2','西亚','A'
insert catalog2 select 'A3','其他','A'
insert catalog2 select 'B1','东欧','B'
insert catalog2 select 'B2','西欧','B'
insert catalog2 select 'B3','其他','B'--查询
select id1 id,name1,name1 name2 from catalog1
union
select b.id2 id,a.name1 name1,b.name2 name2 from catalog1 a,catalog2 b where a.id1=b.parent_id
order by id--结果
id name1 name2
---------- -------------------- --------------------
A 亚洲 亚洲
A1 亚洲 东亚
A2 亚洲 西亚
A3 亚洲 其他
B 欧洲 欧洲
B1 欧洲 东欧
B2 欧洲 西欧
B3 欧洲 其他(所影响的行数为 8 行)