MySQL连接查询深度解析:内连接与外连接的运用

内连接

用左边表的记录去匹配右边表的记录,如果符合条件的则显示。内连接查询的结果:两表的公共部分

隐式内连接

隐式内连接:看不到`JOIN`关键字,条件使用`WHERE`指定

语法:
select 列名 , 列名 .... from 表名1,表名2,.... where 表名1.列名 = 表名2.列名;
select * from fruit,price where fruit.price_id = price.id;

说明:在产生两张表的笛卡尔积的数据后,通过条件筛选出正确的结果

显示内连接(掌握)

显示内连接:使用`INNER JOIN ... ON`语句, 可以省略`INNER`

语法:
select * from 表名1  inner join 表名2 inner join 表名3 inner join 表名4 ..... on 多个条件;
或者
select * from 表名1  join 表名2 on 条件 
左外连接

左外连接可以理解为:用左边表去右边表中查询对应记录,不管是否找到,都将显示左边表中全部记录。

左外连接:使用`LEFT OUTER JOIN ... ON`,`OUTER`可以省略

select * from 表1 left outer join 表2 on 条件;
把left 关键字之前的表,是定义为左侧。 left关键字之后的表,定义右侧。
查询的内容,以左侧的表为主,如果左侧有数据,右侧没有对应的数据,仍然会把左侧数据进行显示。
右外连接

用右边表去左边表查询对应记录,不管是否找到,右边表全部记录都将显示。

右外连接:使用`RIGHT OUTER JOIN ... ON`,`OUTER`可以省略

语法:select * from 表1 right outer join 表2 on 条件;
说明:如果右侧有数据,左侧没匹配到,把右侧的数据显示出来。
right之前的是左侧,right之后的是右侧。
子查询
什么是子查询

一条查询语句结果作为另一条查询语法一部分。

SELECT 查询字段 FROM 表 WHERE 条件;
举例:
SELECT * FROM employee WHERE salary=(SELECT MAX(salary) FROM employee);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值