创建复杂的查询

jy02945722 2007-08-13 11:29:05
现在有3张表,A表有字段AA、DD,B表有字段BB、XX,C表有字段CC、YY,A表字段DD有可能是B表的BB或者C表的CC,要做一个查询包括A表的AA、DD,第三个字段根据DD显示XX或者YY,请问要怎么查呢?
...全文
190 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jy02945722 2007-08-13
  • 打赏
  • 举报
回复
再次感谢各位!!!
paoluo 2007-08-13
  • 打赏
  • 举报
回复
用union和用Left Join都可以實現

select A.*,B.XX from A,B where A.DD=B.BB
union all
select A.*,C.YY from A,C where A.DD=C.CC



Select
A.AA,
A.DD,
IsNull(B.XX, C.YY) As XXYY
From
A
Left Join
B
On A.DD = B.BB
Left Join
C
On A.DD = C.CC
paoluo 2007-08-13
  • 打赏
  • 举报
回复
jy02945722() ( ) 信誉:100 2007-08-13 11:47:39 得分: 0


但是是用where a.dd=b.bb还是from a join b on a.dd=b.bb效率高呢????

---------
一樣的
fa_ge 2007-08-13
  • 打赏
  • 举报
回复
from a join b on a.dd=b.bb效率高
jy02945722 2007-08-13
  • 打赏
  • 举报
回复
但是是用where a.dd=b.bb还是from a join b on a.dd=b.bb效率高呢????
jy02945722 2007-08-13
  • 打赏
  • 举报
回复
太感谢了
结帖
fa_ge 2007-08-13
  • 打赏
  • 举报
回复
select a.aa,b.xx dd from a,b where a.dd = b.bb
union all
select a.aa,c.yy dd from a,c where a.dd = c.cc

dawugui(潇洒老乌龟),打錯了吧
dawugui 2007-08-13
  • 打赏
  • 举报
回复
现在有3张表,A表有字段AA、DD,B表有字段BB、XX,C表有字段CC、YY,A表字段DD有可能是B表的BB或者C表的CC,要做一个查询包括A表的AA、DD,第三个字段根据DD显示XX或者YY,请问要怎么查呢?

select a.aa,b.xx dd from a,b where a.dd = b.bb
union all
select a.aa,c.yy dd from a,c where a.dd = b.cc
paoluo 2007-08-13
  • 打赏
  • 举报
回复
感覺是這樣

Select
A.AA,
A.DD,
IsNull(B.XX, C.YY) As XXYY
From
A
Left Join
B
On A.DD = B.BB
Left Join
C
On A.DD = C.CC
jy02945722 2007-08-13
  • 打赏
  • 举报
回复
谢谢回帖,我试试
子陌红尘 2007-08-13
  • 打赏
  • 举报
回复
select A.*,B.XX from A,B where A.DD=B.BB
union all
select A.*,C.YY from A,C where A.DD=C.CC
mengmou 2007-08-13
  • 打赏
  • 举报
回复

select a.*.b.xx as xy
from a
join b on b.bb = a.dd
union all
select a.*,c.yy as xy
from a
join c on c.cc = a.dd

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧