MySql中JOIN关键字详细使用

 更新时间:2025年12月04日 16:28:11   作者:b***910  
文章介绍了SQL中的四种连接类型:INNERJOIN、LEFTJOIN、RIGHTJOIN和FULLJOIN,并通过图形化示例展示了它们的区别,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

INNER JOIN(内连接)

返回两个表中匹配的行。

表达方式1:

SELECT * 
FROM table1 
INNER JOIN table2 
ON table1.column = table2.column;

表达方式2:

SELECT * 
FROM table1, table2 
WHERE table1.column = table2.column;

LEFT JOIN(左连接)

返回左表中的所有行以及与右表匹配的行。

表达方式1:

SELECT * 
FROM table1 
LEFT JOIN table2 
ON table1.column = table2.column;

表达方式2:

SELECT * 
FROM table1 
LEFT OUTER JOIN table2 
ON table1.column = table2.column;

RIGHT JOIN(右连接)

返回右表中的所有行以及与左表匹配的行。

表达方式1:

SELECT * 
FROM table1 
RIGHT JOIN table2 
ON table1.column = table2.column;

表达方式2:

SELECT * 
FROM table1 
RIGHT OUTER JOIN table2 
ON table1.column = table2.column;

FULL JOIN(全连接)

返回左右表中的所有行。

SELECT * 
FROM table1 
FULL JOIN table2 
ON table1.column = table2.column;

示例图形化解释JOIN的不同类型

INNER JOIN

+----+-------+-----+-------+
| ID | Name  | Age | Grade |
+----+-------+-----+-------+
| 1  | John  | 24  | A     |
| 2  | Alice | 22  | B     |
| 3  | Bob   | 25  | A     |
+----+-------+-----+-------+
+--------+--------+
| ID     | City   |
+--------+--------+
| 1      | London |
| 2      | Paris  |
| 4      | Berlin |
+--------+--------+
After INNER JOIN:
+----+-------+-----+-------+--------+--------+
| ID | Name  | Age | Grade | ID     | City   |
+----+-------+-----+-------+--------+--------+
| 1  | John  | 24  | A     | 1      | London |
| 2  | Alice | 22  | B     | 2      | Paris  |
+----+-------+-----+-------+--------+--------+

LEFT JOIN

+----+-------+-----+-------+
| ID | Name  | Age | Grade |
+----+-------+-----+-------+
| 1  | John  | 24  | A     |
| 2  | Alice | 22  | B     |
| 3  | Bob   | 25  | A     |
+----+-------+-----+-------+
+--------+--------+
| ID     | City   |
+--------+--------+
| 1      | London |
| 2      | Paris  |
| 4      | Berlin |
+--------+--------+
After LEFT JOIN:
+----+-------+-----+-------+--------+--------+
| ID | Name  | Age | Grade | ID     | City   |
+----+-------+-----+-------+--------+--------+
| 1  | John  | 24  | A     | 1      | London |
| 2  | Alice | 22  | B     | 2      | Paris  |
| 3  | Bob   | 25  | A     | NULL   | NULL   |
+----+-------+-----+-------+--------+--------+

RIGHT JOIN

+----+-------+-----+-------+
| ID | Name  | Age | Grade |
+----+-------+-----+-------+
| 1  | John  | 24  | A     |
| 2  | Alice | 22  | B     |
| 3  | Bob   | 25  | A     |
+----+-------+-----+-------+
+--------+--------+
| ID     | City   |
+--------+--------+
| 1      | London |
| 2      | Paris  |
| 4      | Berlin |
+--------+--------+
After RIGHT JOIN:
+----+-------+-----+-------+--------+--------+
| ID | Name  | Age | Grade | ID     | City   |
+----+-------+-----+-------+--------+--------+
| 1  | John  | 24  | A     | 1      | London |
| 2  | Alice | 22  | B     | 2      | Paris  |
| NULL | NULL  | NULL   | NULL    | 4      | Berlin |
+----+-------+-----+-------+--------+--------+

FULL JOIN

+----+-------+-----+-------+
| ID | Name  | Age | Grade |
+----+-------+-----+-------+
| 1  | John  | 24  | A     |
| 2  | Alice | 22  | B     |
| 3  | Bob   | 25  | A     |
+----+-------+-----+-------+
+--------+--------+
| ID     | City   |
+--------+--------+
| 1      | London |
| 2      | Paris  |
| 4      | Berlin |
+--------+--------+
After FULL JOIN:
+----+-------+-----+-------+--------+--------+
| ID | Name  | Age | Grade | ID     | City   |
+----+-------+-----+-------+--------+--------+
| 1  | John  | 24  | A     | 1      | London |
| 2  | Alice | 22  | B     | 2      | Paris  |
| 3  | Bob   | 25  | A     | NULL   | NULL   |
| NULL | NULL  | NULL   | NULL    | 4      | Berlin |
+----+-------+-----+-------+--------+--------+

到此这篇关于MySql中JOIN关键字详细使用的文章就介绍到这了,更多相关mysql json使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL使用LVM快照实现备份

    MySQL使用LVM快照实现备份

    本文给大家详细的说明了使用LVM快照的方式来为Mysql制作备份的方法和步骤,有需要的小伙伴可以参考下
    2016-11-11
  • MySQL数据库中遇到no database selected问题解决办法

    MySQL数据库中遇到no database selected问题解决办法

    这篇文章主要给大家介绍了关于MySQL数据库中遇到no database selected问题的解决办法,这是MySQL数据库的错误提示,意思是没有选择数据库,在使用MySQL命令行操作时需要先选择要操作的数据库,否则就会出现这个错误,需要的朋友可以参考下
    2024-03-03
  • Navicat工具中设置MySQL允许外部访问

    Navicat工具中设置MySQL允许外部访问

    默认情况下MySQL只允许本地登录,即只能在安装MySQL环境所在的主机下访问,这篇文章主要给大家介绍了关于Navicat工具中设置MySQL允许外部访问的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • MySQL查看日志简单易懂保姆级教程

    MySQL查看日志简单易懂保姆级教程

    这篇文章主要给大家介绍了关于MySQL查看日志简单易懂保姆级教程的相关资料,在操作MySQL数据库的时候会留下每一个步骤的痕迹,那怎么查看呢?就可以用日志去查看,需要的朋友可以参考下
    2023-08-08
  • Mysql 中的多表连接和连接类型详解

    Mysql 中的多表连接和连接类型详解

    这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据组合在一起,从而进行更复杂的查询和分析,感兴趣的朋友一起看看吧
    2025-01-01
  • 重置MySQL中表中自增列的初始值的实现方法

    重置MySQL中表中自增列的初始值的实现方法

    这篇文章主要介绍了重置MySQL中表中自增列的初始值的实现方法的相关资料,需要的朋友可以参考下
    2017-03-03
  • Navicat连接mysql报错2003(10060)的解决方法

    Navicat连接mysql报错2003(10060)的解决方法

    本来好好的navicat连接数据库,突然间今天就打不开数据库了,下面这篇文章主要给大家介绍了关于Navicat连接mysql报错2003(10060)的解决方法,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • 深入解析mysql.sock不见的问题

    深入解析mysql.sock不见的问题

    本篇文章是对mysql.sock不见的问题进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • MySQL中使用load data命令实现数据导入的方法

    MySQL中使用load data命令实现数据导入的方法

    MySQL支持load data命令的数据导入,该方式比直接的insert的效率要高,按照官方的说法是要比insert语句快上20倍
    2013-10-10
  • MySQL中EXPLAIN命令的使用场景及作用解读

    MySQL中EXPLAIN命令的使用场景及作用解读

    这篇文章主要介绍了MySQL中EXPLAIN命令的使用场景及作用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-08-08

最新评论