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)意思是从第七项开始选取到选取的第三项为止的用法。