主要有内连接、左连接、右连接、交叉连接
数据表内数据如下:
books表:
image
articls表:
image.png
内连接:
关键字:INNER JOIN
命令行代码如下:
image
其中a.title 表示books表中的title字段,b.title表示的articles表中的字段,这行命令的意思是使用mysql中的inner join关键字来连接两张表(books表与articles表)组合两张表的字段并且返回关联字段相对应的字段(a.title=b.title)
结果如下图所示。
image
注意:这里也可以省略inner直接写为join,也能实现上述功能。
image
inner join 获取的就是两个表中的交集部分
image
左连接:
关键字:LEFT JOIN
左表:books 右表:articles
image
左连接会读取左边数据表的全部数据,即使右边数据表没有对应数据。(如果两个表中数据有相同部分,只显示一个)
image
右连接:
关键字:RIGHT JOIN
左表:books 右表:articles
image
右连接会读取右边数据表的全部数据,即使左边数据表没有对应数据。(如果两个表中数据有相同部分,只显示一个)
image
交叉连接:
交叉连接返回的结果,是被连接的两个表中所有数据行的笛卡尔积,也就是返回第一个表中符合查询条件的数据行数,乘以第二个表中符合查询条件的数据行数
比如,Department表中有4个部门,employee表中有4个员工,那么,交叉连接的结果就有16条数据
SELECT * FROM 表1 CROSS JOIN 表2;