首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

求个SQL!解决方法

2012-06-14 
求个SQL!存在A、B、C表A表id012B表aid name0b2bC表aid name1c得到A表关联B表数据或关联C表数据(判断A id是否

求个SQL!
存在A、B、C表
A表
id 
0
1
2

B表
aid name
0 b
2 b

C表
aid name
1 c

得到A表关联B表数据或关联C表数据(判断A id是否存在B表,存在则关联,反关联C表)
得到
id name
0 b
1 c
2 b

[解决办法]
select * from A inner join (select * from B left join C on B.id=C.id) as D on A.id=D.id
[解决办法]
select A.id,(case when isnull(B.name,'')='' then C.name else B.name end) name from A 
left outer join B on A.id=B.aid 
left outer join (select * from C where aid not in(select aid from b)) c on A.id=c.aid
order by A.id

给分哦
[解决办法]
select A.ID, name= case when b.id is not null then b.name else c.name end from A left join B on A.ID =B.ID 
left join C on A.ID = C.ID

[解决办法]
select * from B where id exists (select id from A)
union 
select * from C where aid exists (select id from A)

这样嘛?
[解决办法]

SQL code
select A.ID,CASE WHEN B.name IS NULL THEN C.Name else B.Name end Name from A left join B on A.ID=B.AIDleft join C on A.ID=C.AID
[解决办法]
idname
0B
1C
2B

你确定不好使,这是我照你的表创建的,执行SQL后很你显示的结果也一致,你到底需要什么效果,请表达清楚

热点排行