SQL 语句问题:同时查询两个表,获取同一用户信息,当其中一表没有数据另一表有数据,怎么才能让它返回不为空?

2016-07-08 14:20:23 +08:00
 Jolly23

select NEWJW.XS_XJB.XM, NEWJW.XS_GRXXB.DH, NEWJW.XS_GRXXB.EMAIL from NEWJW.XS_XJB, NEWJW.XS_GRXXB where NEWJW.XS_XJB.XH = 学号 and NEWJW.XS_GRXXB.XH = 学号

两个表: NEWJW.XS_XJB NEWJW.XS_GRXXB

返回 3 个信息,其中第一个来自表 1 ,第 2/3 个来自表 2

现在遇到了这样一个问题: 当两个表都有这个 学号 的信息时,返回 3 个数据,正常。 当 NEWJW.XS_GRXXB 表没有信息, NEWJW.XS_XJB 表有此人信息时,执行此 sql 语句返回为空

想要: 当 NEWJW.XS_GRXXB 表没有信息时,返回 NEWJW.XS_XJB 查询到的信息,NEWJW.XS_GRXXB没有的信息为 Null ,这个语句该怎么改呢?

数据库是 oracle10g

6030 次点击
所在节点    Oracle
3 条回复
SpicyCat
2016-07-08 14:40:20 +08:00
搜索 “左连接” 或者 “右连接” 或者 “外连接”
liaowu
2016-07-08 14:44:05 +08:00
where NEWJW.XS_XJB.XH = NEWJW.XS_GRXXB.XH(+)
and NEWJW.XS_XJB.XH = 学号
dexterzzz
2016-07-08 15:31:32 +08:00
full inner join

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/291147

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX