MySQL多表查询(很全)

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条。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值