求一SQL

xiaohe185 2010-10-24 11:12:25
问题描述:
A表 字段1,。。。

B表 字段1, 字段2,。。。

C表 字段1,字段2,。。。

关系:B.字段1=A.字段1
C.字段1 = B.字段2

但可能情况:对B表,B.字段1=A.字段1,一定有记录
对C表,C.字段1 = B.字段2,不一定有记录

我现在要求一条sql语句,联合上述三张表,通过A.字段1,获取B.字段2,及C.字段2,...等字段信息
当对B表,B.字段1=A.字段1,有记录
对C表,C.字段1 = B.字段2,没有记录时,显示形如:
select B.字段2,C.字段2,C.字段3,...
XX001 ''/NULL ''/NULL

当对B表,B.字段1=A.字段1,有记录
对C表,C.字段1 = B.字段2,有记录时,显示形如:
select B.字段2,C.字段2,C.字段3,...
XX001 YY001 ZZ001

请问如何实现?




...全文
75 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2010-10-24
  • 打赏
  • 举报
回复
这两种应该都行,你自己试试.

select a.* , b.* , c.* --这里自己选择你需要的字段,如果对没有的字段按照你的要求可以用isnull(C.字段2,'')
from a left join b on a.字段1=B.字段1
left join c on B.字段2 = C.字段1


select a.* , b.* , c.* --这里自己选择你需要的字段,如果对没有的字段按照你的要求可以用isnull(C.字段2,'')
from a inner join b on a.字段1=B.字段1
left join c on B.字段2 = C.字段1
dawugui 2010-10-24
  • 打赏
  • 举报
回复
select a.* , b.* , c.* --这里自己选择你需要的字段,如果对没有的字段按照你的要求可以用isnull(C.字段2,'')
from a inner join b on a.字段1=B.字段1
left join c on B.字段2 = C.字段1
xiaohe185 2010-10-24
  • 打赏
  • 举报
回复
没用过,能简单写个实例吗?
xuam 2010-10-24
  • 打赏
  • 举报
回复
full join ... on

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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