文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JOIN怎么显示来自多个表的数据

2024-04-02 19:55

关注

这篇文章主要介绍“JOIN怎么显示来自多个表的数据”,在日常操作中,相信很多人在JOIN怎么显示来自多个表的数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JOIN怎么显示来自多个表的数据”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

表关系简介

JOIN怎么显示来自多个表的数据

一、语法

  1. SELECT 字段列表

  2.   FROM TABLE1

  3. [CROSS JOIN TABLE2 ] |

  4. [NATURAL JOIN TABLE2 ] |

  5.  [JOIN TABLE2 USING (字段名) ] |

  6.  [JOIN TABLE2 ON (TABLE.COLUMN_NAME = TABLE2.COLUMN_NAME) ] |

  7. [(LEFT | RIGHT | FULL OUT) JOIN TABLE2 ON (TABLE1.COLUMN_NAME = TABLE2.COLUMN_NAME) ];

二、自然连接

1、USING
  如果不希望参照被连接表的所有同名列进行等值连接,自然连接将无法满足要求,可以在连接时使用USING子句来设置用于等值连接的列(参照列)名。
不允许在参照列上使用表名或者别名作为前缀

  1. --99语法

  2. SELECT EMPNO, ENAME, SAL, EMP.DEPTNO, DNAME

  3.   FROM EMP

  4.   JOIN DEPT

  5.  USING (DEPTNO);

  6.  

  7.  --92语法

  8. SELECT EMPNO, ENAME, SAL, EMP.DEPTNO, DNAME

  9.   FROM EMP, DEPT

  10.  WHERE EMP.DEPTNO = DEPT.DEPTNO;

2、ON
  如果要参照非同名的列进行等值连接,或想设置任意的连接条件,可以使用On子句

  1. SELECT EMPNO, ENAME, SAL, EMP.DEPTNO, DNAME

  2.   FROM EMP

  3.   JOIN DEPT

  4.     ON (EMP.DEPTNO = DEPT.DEPTNO);

三、自连接

  自己和自己做链接

  1. --99语法

  2. SELECT WORKER.LAST_NAME EMP, MANAGER.LAST_NAME MGR

  3.   FROM EMPLOYEES WORKER

  4.   JOIN EMPLOYEES MANAGER

  5.     ON (WORKER.MANAGER_ID = MANAGER.EMPLOYEE_ID);

  6.     

  7. --92语法

  8. SELECT WORKER.LAST_NAME EMP, MANAGER.LAST_NAME MGR

  9.   FROM EMPLOYEES WORKER, EMPLOYEES MANAGER

  10.  WHERE WORKER.MANAGER_ID = MANAGER.EMPLOYEE_ID;

四、非等值连接

  1. --99语法

  2. SELECT E.LAST_NAME, E.SALARY, J.GRADE_LEVEL

  3.   FROM EMPLOYEES E

  4.   JOIN JOB_GRADES J

  5.     ON E.SALARY BETWEEN J.LOWEST_SAL AND J.HIGHEST_SAL;

  6.     

  7. --92语法

  8. SELECT E.LAST_NAME, E.SALARY, J.GRADE_LEVEL

  9.   FROM EMPLOYEES E, JOB_GRADES J

  10.  WHERE E.SALARY BETWEEN J.LOWEST_SAL AND J.HIGHEST_SAL;

五、INNER|OUTER 连接

1、INNER 连接
  两个表连接,只返回匹配的行,被称为内连接。

  1. --查询所有员工以及其部门名字

  2. --99语法

  3. SELECT LAST_NAME, DEPARTMENT_NAME

  4.   FROM EMPLOYEES E

  5.  INNER JOIN DEPARTMENTS D

  6.     ON E.DEPARTMENT_ID = D.DEPARTMENT_ID;


  7. --92语法

  8. SELECT LAST_NAME, DEPARTMENT_NAME

  9.   FROM EMPLOYEES E, DEPARTMENTS D

  10.  WHERE E.DEPARTMENT_ID = D.DEPARTMENT_ID;

2、LEFT OUTER | RIGHT OUTER 连接
  两个表在连接过程中除了返回满足连接条件的行以外还返回左(或右)表中不满足条件的行,这种连接称为左(或右)外连接。

  1. --哪些部门没有员工,看出部门名字

  2. --99语法

  3. SELECT DEPARTMENT_NAME

  4.   FROM EMPLOYEES E

  5.  RIGHT JOIN DEPARTMENTS D

  6.     ON E.DEPARTMENT_ID = D.DEPARTMENT_ID

  7.  WHERE LAST_NAME IS NULL;


  8. --92语法

  9. SELECT DEPARTMENT_NAME

  10.   FROM EMPLOYEES E, DEPARTMENTS D

  11.  WHERE E.DEPARTMENT_ID(+) = D.DEPARTMENT_ID

  12.    AND LAST_NAME IS NULL;

3、FULL OUTER 连接
  两个表在连接过程中除了返回满足连接条件的行以外还返回两个表中不满足条件的行,这种连接称为全外联接。

  1. --99

  2. SELECT E.LAST_NAME, D.DEPARTMENT_ID, D.DEPARTMENT_NAME

  3.   FROM EMPLOYEES E

  4.   FULL OUTER JOIN DEPARTMENTS D

  5.     ON E.DEPARTMENT_ID = D.DEPARTMENT_ID;


  6. --92

  7. SELECT E.LAST_NAME, D.DEPARTMENT_ID, D.DEPARTMENT_NAME

  8.   FROM EMPLOYEES E, DEPARTMENTS D

  9.     ON E.DEPARTMENT_ID(+) = D.DEPARTMENT_ID(+);

六、笛卡尔积

笛卡尔集会在下面条件下产生:

1、连接条件被遗漏
2、连接条件不正确
3、所有表中的所有行互相连接

  1. --99语法

  2. SELECT E.LAST_NAME, D.DEPARTMENT_ID, D.DEPARTMENT_NAME

  3.   FROM EMPLOYEES E

  4.  CROSS JOIN DEPARTMENTS D;


  5. --92语法

  6. SELECT E.LAST_NAME, D.DEPARTMENT_ID, D.DEPARTMENT_NAME

  7.   FROM EMPLOYEES E, DEPARTMENTS D;

到此,关于“JOIN怎么显示来自多个表的数据”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯