1)交叉连接查询
交叉连接:查询到的是两个表的笛卡尔积
语法:select * from a,b;
2)内连接查询
内连接查询的结果:两表的交集(公共部分)
隐式内连接查询:
语法:select * from a,b where a.列名 = b.列名
显式内连接查询:
语法:select * from 表名1 inner join 表名2 on 条件;
3)外连接查询
(1)左外连接
左外连接:用左边表去右边表中查询对应记录,不管是否找到,都将显示左边表中全部记录。
语法:select * from 表1 left outer join 表2 on 条件;
举例:select * from a left outer join b on a.id = b.id;
说明:把left 关键字之前的表,是定义为左侧。 left关键字之后的表,定义右侧。
查询的内容,以左侧的表为主,如果左侧有数据,右侧没有对应的数据,仍然会把左侧数据进行显示。
(2)右外连接
右外连接:用右边表去左边表查询对应记录,不管是否找到,右边表全部记录都将显示。
语法:select * from 表1 right outer join 表2 on 条件;
4)子查询
子查询:把一个sql的查询结果作为另外一个查询的参数存在。
语法:select * from 表名 limit offset, row_count;
mysql中limit的用法:返回前几条或者中间某几行数据
select * from 表名limit 1,4。
1表示索引,注意这里的索引从0开始。
4表示查询记录数。
上述就表示从第2条记录开始查询,一共查询4条,即到第5条。