一个SQL语句的问题,多谢!

liuyuan_buaa 2002-05-19 09:30:16
假设要联表查询表A、B,查询的字段为:表A的字段a,表B的字段b,A、B的都有的字段c。查询的条件是A.c=B.c。但是表A中有的记录表B中没有。
我最后想得到的结果集应该这样:对于表A有的记录而表B没有的,应该显示c、A.a和B.b,但是B.b的字段应该为空,对于A、B都有的记录,则显示相应的字段。不知道相应的Where语句应该怎么写?多谢!
...全文
52 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
snowy_howe 2002-05-20
  • 打赏
  • 举报
回复
非全连接呀!
我觉得这是最好的outer join的教材,(+)就是实现贴主所说的功能的。
很多人写的都是对的,我就没必要再写一遍了。
shipatrioc 2002-05-20
  • 打赏
  • 举报
回复
oracle下:
select a.c,a.a,b.b
from a,b
where a.c=b.c(+)
union
select a.c,a.a,b.b
from a,b
where a.c(+)=b.c
这应该是一个全连接问题


3yugui 2002-05-20
  • 打赏
  • 举报
回复
select a.c,a.a,b.b
from a,b
where a.c=b.c(+)
mimimi 2002-05-20
  • 打赏
  • 举报
回复
select A.c,A.a,B.b
from tableA A,tableB B
where A.c=B.c
union
select C.c,C.a
from tableA C,tableB D
where D.c not exists(select C.c from C)
uu_snow 2002-05-20
  • 打赏
  • 举报
回复
select a.c,a.a,b.b from a,b left join a on b where a.c=b.c
dgj 2002-05-20
  • 打赏
  • 举报
回复
建议大家看看外连接
penghwa 2002-05-20
  • 打赏
  • 举报
回复
select A.c, A.a, B.b from A, B where A.c=B.c(+)
dgj 2002-05-20
  • 打赏
  • 举报
回复
select a.c,a.a,b.b
from a,b
where a.c=b.c(+)
penghwa 2002-05-20
  • 打赏
  • 举报
回复
select c, a, '' from A where c not in ( select c from B )
union select A.c, A.a, B.b from A, B where A.c=B.c
super_cha 2002-05-20
  • 打赏
  • 举报
回复
我不太明白,我给你列出我的理解,看看对不对
表 字段
A a c d
1 2 3
4 5 6

B c b e
2 4 5
7 8 9

A.c=B.c
AB a c d c b e
1 2 3 2 4 5

c A.a B.b
2 1 4
shipatrioc 2002-05-20
  • 打赏
  • 举报
回复
看错了,一个外连接就够了,不需要union了
谢谢有雪的提醒

2,598

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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