mysql中全连接full join...on...的用法说明

 更新时间:2023年03月20日 10:02:07   作者:~不一样的我  
这篇文章主要介绍了mysql中全连接full join...on...的用法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

mysql中全连接full join...on...用法

大部分开发者可能会困惑,为什么我的sql语句怎么写都是错的。

很简单因为full join … on …不支持mysql数据库,只支持Oracle数据库。

废话不多说直接上例。

select a.* FROM
    (select
    table1.*,table2.*
    from table1 left JOIN table2 on table1.id=table2 .tid <-- 用左外连接 -->
    UNION <-- 通过UNION来链接 -->
    select
    table1.*,table2.*
    from table1 right JOIN table2 on table1.id=table2 .tid) as a <-- 用右外连接 -->
    where 
    a.id = #{id} <-- 如果要根据条件查询,必须要把上面括号里的当做子查询,条件必须写在外面 -->
    ORDER BY id <-- 其它操作跟在后面 -->

是不是感觉特别简单,但是对于新手来说这可能会纠结好久,好了到此结束。

mysql中join连接有哪几种?

join有哪几种?

(1)内连接

select * from user1 a INNER JOIN user2 b on a.id=b.id

INNER JOIN内连接,展示的是两表之间的交集,即获取的是符合查询条件(上面sql语句中a.id=b.id)的信息。

(2)JOIN连接之左连接/左外连接(LEFT JOIN/LEFT OUTER JOIN)

select * from user1 a LEFT JOIN user2 b on a.id=b.id

左连接查询的就是左表的全部信息和符合查询条件的信息(例如上面的a.id=b.id,即左右两表符合关联查询条件的信息)两部分。

(3)JOIN连接之右连接/右外连接(RIGHT JOIN/RIGHT OUTER JOIN)

select * from user1 a RIGHTJOIN user2 b on a.id=b.id

右连接查询的是RIGHT JOIN右边右表的全部信息加上左右两边符合关联查询条件的(即上面的a.id=b.id这个条件)。

(4)全连接(full join …on…)<Oracle数据库支持full join,mysql不支持full join,但可以同过左外连接+ union+右外连接实现>

select * from user1 a FULL JOIN user2 b on a.id=b.id

全外连接其实是左连接和右连接的一个合集,也就是说他会查询出左表和右表的全部数据,。

(5)交叉连接(cross join…)

select * from user1 a CROSS JOIN user2 b on a.id=b.id

交叉连接,也称为笛卡尔积,查询返回结果的行数等于两个表行数的乘积

总结

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

相关文章

  • MySQL数据库分组查询group by语句详解

    MySQL数据库分组查询group by语句详解

    这篇文章主要介绍了MySQL数据库分组查询group by语句详解,文中含有详细示例代码说明解析,有需要的朋友可以借鉴参考想=下,希望能够有所帮助
    2021-09-09
  • Ubuntu手动安装mysql5.7.10

    Ubuntu手动安装mysql5.7.10

    这篇文章主要为大家详细介绍了Ubuntu手动安装mysql5.7.10的详细过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • mysql8.0.20数据目录迁移的方法

    mysql8.0.20数据目录迁移的方法

    这篇文章主要介绍了mysql8.0.20数据目录迁移的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Mysql5.7忘记root密码怎么办(简单且有效方法)

    Mysql5.7忘记root密码怎么办(简单且有效方法)

    本文给大家分享一个快速且简单的方法来解决Mysql5.7忘记root密码问题,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-02-02
  • mysql自动填充时间的两种实现方式小结

    mysql自动填充时间的两种实现方式小结

    这篇文章主要介绍了mysql自动填充时间的两种实现方式小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 为什么MySQL 使用timestamp可以无视时区问题.

    为什么MySQL 使用timestamp可以无视时区问题.

    这篇文章主要介绍了为什么MySQL timestamp可以无视时区问题,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下
    2020-12-12
  • MySQL查看版本的五种方法总结

    MySQL查看版本的五种方法总结

    在日常项目开发过程中,我们经常要连接自己的数据库,此时不知道数据库的版本是万万不可的,下面这篇文章主要给大家介绍了关于MySQL查看版本的五种方法,需要的朋友可以参考下
    2023-02-02
  • Mysql5升级到Mysql5.5的方法

    Mysql5升级到Mysql5.5的方法

    这篇文章主要介绍了Mysql5升级到Mysql5.5的方法的相关资料,需要的朋友可以参考下
    2016-01-01
  • 关于MySql的kill命令详解

    关于MySql的kill命令详解

    这篇文章主要介绍了关于MySql的kill命令详解,不知道你在使用 MySQL 的时候,有没有遇到过这样的现象:使用了 kill 命令,却没能断开这个连接,今天我们就来讲一讲这个问题,需要的朋友可以参考下
    2023-05-05
  • mysql unix准换时间格式查找指定日期数据代码

    mysql unix准换时间格式查找指定日期数据代码

    这篇文章主要介绍了mysql unix准换时间格式查找指定日期数据,需要的朋友可以参考下
    2014-03-03

最新评论