免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4471 | 回复: 6
打印 上一主题 下一主题

求助,关于多表关联查询 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-06 23:18 |只看该作者 |倒序浏览
请大家看看这样的语句怎么写:

现在有两个表A和表B,表A中有一些内容需要从表B中补充,两表中都有同一字段zh可以关联,但是表A中的记录数比表B中的多,如果以a.zh=b.zh为查询条件的话,查询出的记录个数仅为AB两表中zh字段相一致的,A表中其他记录不能被选择.

我需要把A表中所有的记录都查询出来,如果A表中有而B表中没有的话,则把相关字段付空值即可,请问这样的sql语句怎么写啊!

论坛徽章:
0
2 [报告]
发表于 2006-06-06 23:40 |只看该作者
A outer join B

论坛徽章:
0
3 [报告]
发表于 2006-06-07 08:02 |只看该作者
update a set c1  = ( select col from b where b.zh = a.zh )

论坛徽章:
0
4 [报告]
发表于 2006-06-07 11:38 |只看该作者
我的语句是这样的:
declare a_cur cursor for
     select a.zh ,a.hm ,b.zl,b.zjh  into $zh,$hm,$zl,$zjh
     from hzz a,zjb b where a.zh=b.zh and a.bz=0

因为a表中记录个数大于b表中记录,所以取出来的值仅是a,b两表中zh字段相同的,而a表中其他bz=0的记录不能被取出,请问如何可以取出a表中所有bz=0的记录,对于表 b中没有的记录则对zl和zjh赋空值即可,请教如何实现?

论坛徽章:
0
5 [报告]
发表于 2006-06-08 08:12 |只看该作者
select a.*,b.*
from a left join b
on a.zh=b.zh

论坛徽章:
0
6 [报告]
发表于 2006-06-08 08:14 |只看该作者
后面还可以再加where语句做一些限制

论坛徽章:
0
7 [报告]
发表于 2006-06-08 14:00 |只看该作者
已经解决,谢谢各位回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP