MYSQL学习笔记-多表查询

1 使用场景 

当需要从多个表选择所需的信息的时候将会用到多表查询。

2 设计前置

一般是ID的列要在设计的时候相等方便查询的时候和合并作为多表查询的前置条件。

比如说两表都有auto-increment的字段id。

3 基本

格式为选择指定的列从第一个表加入第二个表当他们的给定的列的单元值相等,这个操作会合并指定的列

SELECT 

      a.xxx,

      b.xxx

FROM

     a_table a

JOIN

    b_table b

WHERE

  a.id = b.id

另外的加入给的列自身需要用ON来加入

  ON

     a.id = b.id

注意这里的join实际上上inner join只是可以省略inner

4 拓展--加入多张表的写法

首先需要确认设计的时候保留了对应两张表的列使结果有意义,

然后,同样的,

SELECT

   *

FROM

   a_table a

JOIN

  b_table b

  ON a.id = b.id

JOIN 

  c_table c

  ON c.status = a.status

5 选择所有的列太复杂于是有上面的*改为指定的列,比如

SELECT

 a.name, a.num, b.price

这里还可以重命名选取的列,或者作为自查询作为创建新表的数据来源。

6 left join和 right join

由于SQL工作原理会根据先后顺序来进行查询,为了不让空值null的列不在结果栏中,我们使用left join来使主表的内容完全展示到结果中,而使用right join则结果相反。

也就是说,首列的内容将会完全展示到结果中。

8 检索自身

join除了用于连接多表查询还可以检索遍历自身。比如说我们要查询比某一个员工,员工C他的工资3000,比他的工资高的当前表中的,使用join能够将每一项进行遍历然后比较筛选出结果。

9 using关键词

前面提到了where和join-on两种连接多表查询,还有一种是使用using关键字,基本用法是

(using column_name)

10 查询结果内增加行

当我们需要对限定范围进行不同的分组,需要使用limit关键字,

同时,我们有desc指定降序以及,(6,3)意思是从第七项开始选取到选取的第三项为止的用法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值