如何使用mysql表连接


本文摘自PHP中文网,作者一个新手,侵删。

为什么使用表连接

  • 什么是表连接?

    • 如果数据来自多个表,那么可以采用链接查询的方式来实现。因此表连接就是多个表连接合在一起实现查询效果

  • 表连接的原理

    • 表连接采用的是笛卡尔乘积,称之为横向连接。

  • 笛卡尔乘积

    • 表连接的基本原理就是采用笛卡尔乘积。笛卡尔乘积是指将两张表的所有数据相连,最后连接的结果数为两张表数量的乘积。

  • 从上面图示可以看出表联接是将两张表的数据相乘而得到的结果,第一张表的每条记录都会和第二张表的所有记录相连。
    在数据库中将多表相连需要使用JOIN关键字。
    标准结构

    

  • 笛卡尔乘积出来的结果数量太多,其中有不少数据是没用的。因为我们在建表时为了表示他们的关系,都会建立外键来确定关系,所以在表联接时就要根据其外键来过滤没用的数据。使用ON关键字来确定其是否匹配。
    完整结构

    
--MySQL中表连接分为:内连接,外链接,都是横向连接 还有oracle的纵向连接

--使用表连接 -- 内连接 第一种语法 inner join inner可以省略

  1. select * from 主表名 as 主别名 join 连接表名 as 连接的别名 on 主表名.列名=连接表名.列名 where 条件

-- 外链接:

定义:外联接是指不管有没有匹配,被定义了外联接的表数据都要出现在结果中。比如左外联接,那么在JOIN左边的表就被定义为外联接,那么此表中所有数据都会出现在查询结果中。右外联接则是JOIN右边的表为外联接表。全外联接就是JOIN左右两张表都是外联接表。

  • 左外联接
    用法:LEFT OUTER JOIN 或 LEFT JOIN

  • 右外联接
    用法:RIGHT OUTER JOIN 或 RIGHT JOIN

  • 全外联接
    用法:FULL OUTER JOIN 或 FULL JOIN

  • 注意:MYSQL不支持全外联接

--自连接

定义:自联接其实就是内联接或外联接的一种特例,同样可以使用INNER JOIN 或 OUTER JOIN。
自联接所联接的表是来自于同一张表。

  • 举例:一张存放员工信息的表,每个员工有个直属领导。当然直属领导也是员工,所以员工信息和他们的领导信息都再一张表中。下面是表结构:

以上就是如何使用mysql表连接 的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

如何在ubuntu 18.04中安装mysql 8.0

mysql数据类型有哪些

详解mysql基本查询、连接查询、子查询、正则表达查询

mysql中的str_to_date方法有什么用

win10下mysql 8.0.12 安装及环境变量配置教程

配置mysql主从分离的方法教程

论一条select语句在mysql是怎样执行的

mysql常用sql语句汇总

mysql数据库编码如何设置以及查看

mysql如何使用escape关键字

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...