MySQL统计函数记录——Join连接详解

这篇博客详细介绍了MySQL中的JOIN操作,包括INNER JOIN、LEFT JOIN、RIGHT JOIN、CROSS JOIN及其变体,以及STRAIGHT_JOIN和NATURAL JOIN的用法。通过实例展示了如何在多表查询中使用JOIN来获取所需数据。
摘要由CSDN通过智能技术生成

MySQL JOIN 语法概述

SQLMySQLJOIN用于根据两个或多个表中的字段之间的关系,从这些表中得到数据。

JOIN通常与ON关键字搭配使用,基本语法如下:

... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditiona

table1通常称为左表,table2称为右表。ON关键字用于设定匹配条件,用于限定在结果集合中想要哪些行。如果需要指定其他条件,后面可以加上 WHERE条件 或者 LIMIT 以限制记录返回数目等。

下面以最常见的两表连接来说明MySQLJOIN 的用法,关于多表JOIN请参见《MySQLJOIN 多表》。

MySQLJOIN 分类

JOIN按照功能大致分为如下三类:

  • INNERJOIN(内连接):取得两个表中存在连接匹配关系的记录。

  • LEFTJOIN(左连接):取得左表(table1)完全记录,即是右表(table2)并无对应匹配记录。

  • RIGHTJOIN(右连接):与LEFTJOIN 相反,取得右表(table2)完全记录,即是左表(table1)并无匹配对应记录。

关于MySQLFULL JOIN 全连接

MySQL没有提供SQL标准中的FULLJOIN(全连接):两个表记录都取出,而不管彼此是否有对应记录。要解决此问题,可以使用UNION关键字来合并LEFTJOIN RIGHTJOIN,达到模拟FULLJOIN 的目的。

MySQLINNER JOIN

INNERJOIN 用于取得两个表中存在连接匹配关系的记录。下面是两个原始数据表:

article文章表:

aid

title

content

uid

1

文章1

文章1正文内容...

1

2

文章2

文章2正文内容...

1

3

文章3

文章3正文内容...

2

4

文章4

文章4正文内容...

4

user用户表:

uid

username

email

1

admin

admin@5idev.com

2

小明

xiao@163.com

3

Jack

jack@gmail.com

article表中文章的所属用户是通过uid这个字段与user表关联起来的。通过观察数据不难发现,对于uid=3的用户,并没有发表任何文章;而文章中aid=4却无法在uid表中找到对应记录(可能是该用户被删除而其所属的文章却被保留了下来)。

我们列出所用文章与用户一一对应的数据。

SELECT... INNER JOIN ... ON 语句如下:

SELECT article.aid,article.title,user.username FROM art
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值