翼度科技»论坛 编程开发 mysql 查看内容

详解MySQL的内连接和外连接

10

主题

10

帖子

30

积分

新手上路

Rank: 1

积分
30
  1. MySQL 中的内连接、左外连接和右外连接是用于连接两个或多个表的不同方式,它们之间的区别如下:
复制代码
内连接(Inner Join)
内连接也称为等值连接,只返回两个表中键值匹配的行,即只有在两个表中都有匹配的数据时才会返回。内连接的语法如下:
  1. SELECT column_name(s)
  2. FROM table1
  3. INNER JOIN table2
  4. ON table1.column_name = table2.column_name;
复制代码
左外连接(Left Join)
左连接返回左表中所有记录和右表中匹配的记录,如果右表中没有匹配的记录,则返回 NULL 值。左连接的语法如下:
  1. SELECT column_name(s)
  2. FROM table1
  3. LEFT JOIN table2
  4. ON table1.column_name = table2.column_name;
复制代码
右外连接(Right Join)
右连接返回右表中所有记录和左表中匹配的记录,如果左表中没有匹配的记录,则返回 NULL 值。右连接的语法如下:
  1. SELECT column_name(s)
  2. FROM table1
  3. RIGHT JOIN table2
  4. ON table1.column_name = table2.column_name;
复制代码
以上三种连接方式都是基于相同的基础,只是返回的结果不同。需要根据实际需求选择不同的连接方式来处理数据。
  1. 案例:
复制代码
假设有两个表A和B:
表A:
idname
1Alice
2Bob
3Carol
表B:
idscore
190
280
370
内连接查询A和B表中相同id的数据:
  1. sqlCopy code
  2. SELECT A.id, A.name, B.score
  3. FROM A
  4. INNER JOIN B
  5. ON A.id = B.id;
复制代码
结果:
idnamescore
1Alice90
2Bob80
左连接查询A和B表中所有的数据,如果B表中没有与A表相同的id,则B表的score为NULL
  1. sqlCopy code
  2. SELECT A.id, A.name, B.score
  3. FROM A
  4. LEFT JOIN B
  5. ON A.id = B.id;
复制代码
结果:
idnamescore
1Alice90
2Bob80
3CarolNULL
右连接和左连接相似,只是将A表和B表调换位置,查询B表和A表的数据。
到此这篇关于详解MySQL的内连接和外连接的文章就介绍到这了,更多相关MySQL内连接外连接内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/article/283404.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具