首页 新闻 会员 周边 捐助

sql查询

1
悬赏园豆:20 [已解决问题] 解决于 2010-12-04 10:11


A表,留言表 里面有一个 ikey主键 
B表,预约表 里面有一个 voiceID 外键(留言表)还有一个员工的ID
C表,健康咨询表 里面有一个 voiceID 外键(留言表)还有一个员工的ID
D表,业务咨询表 里面有一个 voiceID 外键(留言表)还有一个员工的ID
  
 他们之间只能通过 ikey 与 voiceID 联系起来

 我想通过sql语句查出 每条留言表是什么类型的 还有员工的ID
该怎么弄?? 

 

select * from A ,(select (isnull(b.aid,0)+isnull(c.aid,0))
as '留言ID',ltrim((isnull(b.TrackName,'')+isnull(c.TrackName,'')))
as '跟踪人',(case
when b.aid is not null and c.aid is null then 'B'
when c.aid is not null and b.aid is null then 'C'
else '无标识' end ) as '某表'
from B b full join C c on 1=2) M where A.ID = M.留言ID

这个是我写的2个表之间的查询 不过感觉不怎么好 希望各位能够给一个很好的办法

必须考虑数据量大的情况!!性能问题·

 

Fry_CiCi的主页 Fry_CiCi | 初学一级 | 园豆:0
提问于:2010-12-02 09:55
< >
分享
最佳答案
0

这么多表?

收获园豆:20
顾晓北 | 专家六级 |园豆:10898 | 2010-12-02 11:42
好做吗?
Fry_CiCi | 园豆:0 (初学一级) | 2010-12-02 12:34
我的意思是说后面三个应该一个表就够了吧?
顾晓北 | 园豆:10898 (专家六级) | 2010-12-02 12:53
但是数据库的设计是这样的了 只能这样来了·
Fry_CiCi | 园豆:0 (初学一级) | 2010-12-03 09:53
没什么思路,你现在是人家引用留言表的主键,怎么知道类型啊?
顾晓北 | 园豆:10898 (专家六级) | 2010-12-03 10:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册