首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

oracle中查询记录的小疑点

2012-07-15 
oracle中查询记录的小问题,在线等在EMPLOYEES 和DEPARTMENTS表里检查下列数据。EMPLOYEESLAST_NAME DEPARTM

oracle中查询记录的小问题,在线等
在EMPLOYEES 和DEPARTMENTS表里检查下列数据。
EMPLOYEES
LAST_NAME DEPARTMENT_ID SALARY
Getz 10 3000
Davis 20 1500
King 20 2200
Davis 30 5000
Kochhar 5000
DEPARTMENT_ID DEPARTMENT_NAME
10 Sales
20 Marketing
30 Accounts
40 Administration
如果你想获得所有的employees的last_name,department_name,不管他们是否匹配部门表中的部门,那么下面的查询语句正确的是()
 A.SELECT last_name,department_name FROM employees e JOIN departments d ON e.department_id(+) = d.department_id; 
 B.SELECT last_name,department_name FROM employees e RIGHT OUTER JOIN departments d ON e.department_id = d.department_id; 
 C.SELECT last_name,department_name FROM employees e, departments d WHERE e.department_id = d.department_id (+) 
 D.SELECT last_name,department_name FROM employees e LEFT OUTER JOIN departments d ON e.department_id = d.department_id; 
正确答案:CD

现问,为什么选cd,其它选项为什么不行呢,
thanks

[解决办法]
前两个,是传说中的右连接,以右边的表为主,左表配合输出,也就是说最终数据肯定不会多于右边的表数据。
后两个,和上面相反,是搂主想要的需求,呵呵。
[解决办法]
LZ去看下 连接查询
[解决办法]
左连接是以坐标为主 来关联右表 左表的数据肯定会都显示出来 如果右表存在对应数据 就显示 不存在 就是空值
[解决办法]

探讨

c中e.department_id = d.department_id (+)
+是什么意思呢, 用了=,表示哪个是主表呢,哪个是关联表呢,

[解决办法]
+号为从表,即不带+的表为主表,在From关联的两个表的左边,即为左连接,主表不符合条件的资料也会查询出来。

热点排行
Bad Request.