MySQL连接查询

2018-10-11  本文已影响0人  地铁姑娘

应用场景

---将多张表进行记录的连接查询(按照某个字段指定的条件进行数据的拼接),进行数据的拼接(两张表的内容显示在一个结果表中 使用连接查询)
意义:在用户查看数据的时候,显示的数据来自于多张表

内连接 inner join

内连接【掌握】 ----拼接查寻结果

1.内部有联系,使用内连接
2.格式:[inner] join ---[inner]可省
3.结果:
从左表中取出每一条记录,去右表中与所有的记录进行匹配;
匹配必须是某个条件是左表中与右表中相同,才会保留结果,否则不保留;
4.基本语法:
左表[inner] join 右表 on 左表.字段 = 右表.字段;
5.注意事项:
(1)on 表示连接条件;条件字段代表相同的业务含义
      (如 stu.cid 和 cla.id) 
      学生stu表中的班级cid  和 班级cla表中的id
(2)内连接可以没有连接条件,没有on之后的内容,
      这时候系统会保留所有结果(笛卡尔集)
(3)内连接可以使用where 代替 on
      通常不用where,因为where没有on效率高
      on指匹配到第一条成功的就结束,其他不匹配; 
      若没有,不进行匹配
      而where会一直匹配,进行判断
(4)通常使用字段别名 表别名
      在查询数据的时候,不同表有同名字段, 
      这时候需要加上表名才能区分,
      而若表名太长,使用表别名
      若不想使用默认的字段名 可以通过[as] 设置字段别名

外连接 outer join

外连接【掌握】 ----以某一张表为基表,进行相关查询
outer join 以某张表为主,取出里面的所有记录,是所有记录!!然后每条与另外一张表进行连接,不管能不能匹配上条件,最终都会保留。能匹配,正确保留;不能匹配其它表的字段都会置空null。

1.分类: 左连接,右连接
left join 左外连接--左连接,以左表为主
right join 右外连接--右连接,以右表为主
2.基本语法:
 左表 left/right join 右表 on 左表.字段 = 右表.字段;---条件必须有

注意:

1.外连接查询的记录通常比内连接查询的记录多

上一篇下一篇

猜你喜欢

热点阅读