连接查询
MysQL的连接查询,通常都是将来自两个或多个表的行结合起来,基于这些表之间的共同字段,进行数据的拼接。
首先,要确定一个主表作为结果集,然后将其他表的行有选择性的连接到选定的主表结果集上。
使用较多的连接查询包括:内连接、左连接和右连接
1、内连接
MySQL中的内连接就是两张或多张表中同时符合某种条件的数据记录的组合。
通常在 from 子句中使用关键字 inner join 来连接多张表,并使用 on 子句设置连接条件
内连接是系统默认的表连接,所以在 from 子句后可以省略 inner 关键字,只使用关键字 join ,同时有多个表时,也可以连续使用 inner join 来实现多表的内连接,不过为了更好的性能,建议最好不要超过三个表
2、左连接
左连接也可以被称为左外连接,在 from 子句中用 left join 或者 left out join 关键字来表示。
左连接以左侧表为基础表,接收左表的所有行,并用这些行与右侧参考表中的记录进行匹配,也就是说匹配左表中的所有行以及右表中符合条件的行。
左连接中,左表的记录会全部表示出来,而右表只会显示符合搜索条件的记录,不足的地方均为 null
3、右连接
右连接也被称为右外连接,在 from 子句中用 right join 或者 right out join 关键字来表示。
右连接跟左连接正好相反,它是以右表为基础表,用于接收右表中的所有行,并用这些记录与左表中的行进行匹配