SQL语句之如何用JOIN连接多个表

 更新时间:2022年12月21日 10:23:38   作者:Olivia_Vang  
这篇文章主要介绍了SQL语句之如何用JOIN连接多个表,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

SQL语句 用JOIN连接多个表

连接两个数据表的用法 :

SELECT * FROM actor INNER JOIN film_actor ON actor.actor_id = film_actor.actor_id ;

语法格式可以概括为:

FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号

连接三个数据表的用法:

SELECT * FROM (actor INNER JOIN film_actor ON actor.actor_id = film_actor.actor_id) INNER JOIN film ON film_actor.film_id = film.film_id;

语法格式可以概括为:

FROM (表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号

连接四个数据表的用法:

SELECT * FROM ((actor INNER JOIN film_actor ON actor.actor_id = film_actor.actor_id) INNER JOIN film ON film_actor.film_id = film.film_id) INNER JOIN film_category ON film_actor.film_id = film_category.film_id;

语法格式可以概括为:

FROM ((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号

还可以使用 USING

USING要求,负责连接的两个实体之间的字段名称一致。

建议是,在两个表中,有同名字段时,使用USING;而在通用条件时,使用ON。

SELECT * FROM actor INNER JOIN film_actor USING(actor_id);

语法格式概括为:

FROM 表1 INNER JOIN 表2 USING(同名字段名);

SQL语句多表连接查询语法

总结:内连接就是两个表的交集 ,左外连接就是左边表加两表交集 ,右外连接就是右边表加两表交集

一、外连接

1.左连接  left join 或 left outer join

SQL语句:select * from student left join score on student.Num=score.Stu_id;

2.右连接  right join 或 right outer join

SQL语句:select * from student right join score on student.Num=score.Stu_id;

3.完全外连接  full join 或 full outer join

SQL语句:select * from student full join score on student.Num=score.Stu_id;

通过上面这三种方法就可以把不同的表连接到一起,变成一张大表,之后的查询操作就简单一些了。

交叉连接查询,这种查询方式基本不会使用,原因就是这种查询方式得到的是两个表的乘积(笛卡儿集)

语法就是select * from a,b;则尽量不使用此语句,产生的结果过于繁琐。

内连接查询,可以有效的去除笛卡尔集现象

内连接查询分为两类:

二、内连接 

join 或 inner join

SQL语句:select * from student inner join score on student.Num=score.Stu_id;

此时的语句就相当于:select * from student,score where student.ID=course.ID;

内连接查询分为两类:

隐式内连接

select * from A,B where 条件                                          隐式连接使用别名:

select * from A 别名1,B 别名2 where 别名1.xx=别名2.xx;

显示内连接

select * from A inner join B on 条件 (inner可以省略)  显示连接使用别名:

select * from A 别名1 inner join B 别名2 on 别名1.xx=别名2.xx

举例:

三、交叉连接

cross join,没有where指定查询条件的子句的交叉联接将产生两表的笛卡尔积。

SQL语句:select * from student cross join score;

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 深入聊聊MySQL中各种对象的大小长度限制

    深入聊聊MySQL中各种对象的大小长度限制

    在使用mysql的过程中总会遇到或大或小的问题,这篇文章主要给大家介绍了关于MySQL中各种对象的大小长度限制的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mysql具有一定的参考学习价值,需要的朋友可以参考下
    2021-12-12
  • MySQL修改默认存储引擎的实现方法

    MySQL修改默认存储引擎的实现方法

    下面小编就为大家带来一篇MySQL修改默认存储引擎的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 全面盘点MySQL中的那些重要日志文件

    全面盘点MySQL中的那些重要日志文件

    大家好,本篇文章主要讲的是全面盘点MySQL中的那些重要日志文件,感兴趣的同学快来看一看吧,对你有用的话记得收藏,方便下次浏览
    2021-11-11
  • MySQL数据更新操作的两种办法(数据可视化工具和SQL语句)

    MySQL数据更新操作的两种办法(数据可视化工具和SQL语句)

    MySQL是最常用的数据库,在数据库操作中,基本都是增删改查操作,简称CRUD,下面这篇文章主要给大家介绍了关于MySQL数据更新操作的两种办法,需要的朋友可以参考下
    2023-03-03
  • PHP学习之SQL语句快速入门

    PHP学习之SQL语句快速入门

    在学校php过程中,需要用得到的一些语句。比较简单的大家一定要掌握啊。
    2010-03-03
  • windows mysql 自动备份的几种方法汇总

    windows mysql 自动备份的几种方法汇总

    本篇文章主要对windows mysql 自动备份的几种方法进行整理,具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • MYSQL主从库不同步故障一例解决方法

    MYSQL主从库不同步故障一例解决方法

    第一次做完主从库同步后正常,但工作过程中发现有一个库的数据库没有同步起来,在另外一个mysql(3307)中
    2010-06-06
  • mysql中cast函数用法小结

    mysql中cast函数用法小结

    在MySQL中,CAST函数用于将一个表达式转换为指定的数据类型,本文主要介绍了mysql中cast函数用法小结,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • mysql5.7 新增的json字段类型用法实例分析

    mysql5.7 新增的json字段类型用法实例分析

    这篇文章主要介绍了mysql5.7 新增的json字段类型用法,结合实例形式分析了mysql5.7 新增的json字段类型具体功能、使用方法及操作注意事项,需要的朋友可以参考下
    2020-02-02
  • MySQL使用SHOW PROCESSLIST的实现

    MySQL使用SHOW PROCESSLIST的实现

    本文主要介绍了MySQL使用SHOW PROCESSLIST的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-03-03

最新评论