在关系数据库中,有时需要将多个表的数据整合使用才能得到完整的信息。因此需要将多个表进行连接。多表查询和单表查询比较,有以下不同

(1) 在From子句中,必须写上查询所涉及的所有表明及连接条件

From <表1> JOIN <表2>ON<连接条件>[,…..n]

(2) From子句中的源表可以是一个基于查询的结果

(3) 多表连接,涉及多个表的字段可能有重名情况,命令中必须明确地在字段前面加表明前缀来指明字段来源,不重名的字段可以直接写。

定义

多表连接,可以理解为先将多个表连接起来当做一个表,然后再进行查询,所有在单表查询中使用的其他子句和功能在多表连接查询都是相同的。

1、 内连接和外连接

将多个表连接在一起进行查询,有5种连接方式,命令如下

(1) 内连接:左表 [INNER] JOIN 右表 ON 左表.连接字段 = 右表.连接字段

(2) 左外连接: 左表 LEFT [OUTER] JOIN 右表 ON 左表.连接字段 = 右表.连接字段

(3) 右外连接:左表 RIGHT [OUTER] JOIN 右表 ON 左表.连接字段 = 右表.连接字段

(4) 全外连接:左表 FULL [OUTER] JOIN 右表 ON 左表.连接字段 = 右表.连接字段

(5) 交叉连接:左表 CROSS JOIN 右表

内连接查询就是将两个源表中满足条件的记录相连

左外连接,包括内连接的查询结果记录,以及左表中所有不满足连接条件的其他记录。这些不满足条件的左表记录,在查询结果的右边位置全部填上null值

右外连接,包括内连接的查询结果记录,以及右表中所有不满足连接条件的其他记录。

这些不满足条件的右表记录,在查询结果的左边位置全部填上null值

全外连接,查询结果包括左右表全部满足连接条件的记录,以及左右表所有不满足条件的其他记录。不满足条件的记录分别放在结果中,在左边或者右边空位上填上null

交叉连接即笛卡尔连接,用于实现笛卡尔积运算。即将两个表的所有记录一一连接起来。

【例1】

【例2】

【例3】

2 使用派生表

所谓派生表(又称在线视图)是将查询结果作为派生的一个表参与进一步查询。

【例4】

更多相关文章

  1. 统计查询-根据条件进行count的两种实现方式- oracle
  2. Mysql查询时,对于数值型字段加单引号会引起的误解~
  3. 如何在Android应用里对HTTP请求头部添加适当的User-Agent字段
  4. 如何将值发送到Ionic中具有条件的其他页面
  5. Javassist生成class(生成类,方法,字段,注解)
  6. Play 2.0生成隐藏字段而不使用div包装器
  7. JAVAWEB网站开发,一对多,多对一,主表与子表(主外键)相连接,会导致主表
  8. 根据用户的动态字段对链接列表进行排序
  9. MongoDB中的按组计算的字段

随机推荐

  1. Linux系统中使用fdisk命令为U盘分区,并将
  2. Linux内核分析-9/进程的调度时机
  3. LNMP(Linux+Nginx+Mysql+PHP)环境下安装yaf
  4. linux常用的命令
  5. Linux CentOS 配置Tomcat环境
  6. Linux 上samba服务的配置
  7. Linux基础知识总结
  8. linux环境下写C++操作mysql(二)
  9. Linux生成随机字符串
  10. 在VNC远程桌面环境Xfce4中Tab键失效的解