MySQL基础语法之多表连接查询MySQL的多表连接查询
总结了MySQL中对多张表的连接查询
多表查询语法分为 SQL92 语法和 SQL99 语法
SQL92语法
连接查询:也可以叫跨表查询,需要关联多个表进⾏查询
byval内连接
基础语法
select字段,字段,字段,...
from表名,表名....
where条件;
// 如果觉得表名太复杂,可以给表取个新名
select字段,字段,字段,...// (当需要规定要查询哪张表中的字段时需要) 表名.字段tostring c++
from表名新表名,表名新表名....
where条件;
web架构开发工程师招聘如果不加条件的话,会产⽣现象
将学⽣姓名和属于的班级名查询出来 根据两张表的班级 id 相等为条件
select u.name,c.class_name
from user u , class c
where u.class_id = c.class_id
⾃连接
基础语法跟内连接⼀样,不过不是对于两张表的连接,⽽是对于⼀张表的连接
select u.name,t.name
from user u ,user t
acher_id = t.id // 查询学⽣名字和他对应⽼师的名字,根据学⽣的⽼师id和⽼师的id相等为条件查询SQL99语法
内连接
基础语法
跟SQL92的基本内连接语法差不多
select字段,字段,字段,...
from表名
inner join表名// (⼀般不加inner关键字)
on条件
inner join表名
on条件;
(也可以给表取新表名)
select字段,字段,字段,...// (当需要规定要查询哪张表中的字段时需要) 表名.字段mysql语句多表查询
from表名新表名
inner join表名新表名// (⼀般不加inner关键字)
on条件
inner join表名新表名
on条件;
将学⽣姓名和属于的班级名查询出来 根据两张表的班级 id 相等为条件
select u.name,c.class_name
from user u
js中截取字符串的方法join class c
on u.class_id = c.class_id
外连接
外连接分为 左外连接 和 右外连接
外连接的⼀般查询的是当按条件匹配完之后,另⼀张表还有⼀些数据没有匹配上,但是需要显⽰出来,这时候就需要外连接了
基础语法
select字段,字段,字段,...
from表名
outer(right/left)join表名// (⼀般不加inner关键字) (如果写的是right那么就是右连接,如果是left那么就是左连接)
on条件;
// (也可以给表取新表名)
select字段,字段,字段,...// (当需要规定要查询哪张表中的字段时需要) 表名.字段
from表名新表名
outer(right/left)join表名新表名// (⼀般不加outer关键字) (如果写的是right那么就是右连接,如果是left那么就是左连接)
on条件;
如何选择是加 right 或 left 呢?
考虑在与⾃⼰的需求,想把哪个做为主表,并且如果这个主表在前⾯就⽤ left 如果在后⾯就⽤ right ,通俗的来说,就是你想将哪⼀张表没有匹配的数据也显⽰出来,就⽤哪张表做主表
查询每个班级对应的⽼师,如果那个班级没有⽼师,也要显⽰出来
acher_name,c.class_name
from user u
right join class c // (因为是要将所有班级给显⽰出来并且 class 表在后⾯,所以⽤右连接)(如果将 clas
s 表放前,那么就⽤左连接)
on u.class_id = c.class_id;
总结
left翻译写sql语句⼀定要有耐⼼,要仔细,加油
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论