zoukankan      html  css  js  c++  java
  • mysql之连接查询(多表查询)

    1      连接查询(多表查询)

    1.1交叉连接

    语法:

    from  表1  [cross]  join  表2  ;    //可见交叉连接只是没有on条件而已。

    cross这个词也可以省略,还可以使用inner这个词代替

    例:/*交叉连接(表1条数*表2条数)*/

    SELECT * FROM emp JOIN dept;

    SELECT * FROM emp;

    SELECT * FROM dept;

     

    存在假数据 emp中每条记录跟dept中的数据都匹配一遍。

    实际上,交叉连接是将两个表不设定任何条件的连接结果。

    1.2         内连接

    语法:

    from  表1  [inner]  join  表2  on  表1.字段1=表2.字段2;

    含义:找出(过滤)在交叉连接的结果表中的表1的字段1的值等于表2的字段2的值的那些行。

     

    On后面加连接条件

    当两个表中字段名相同的情况下 前面加表名

     

    1.3 左【外】连接

    形式: 

    from  表1  left  [outer]  join   表2   on  连接条件。

    说明:

    1,这里,left是关键字。

    2,连接条件跟内连接一样。

    3,含义是:内连接的结果基础上,加上左边表中所有不符合连接条件的数据,相应放右边表的字段的位置就自动补为“null”值。

     

    1.4右连接

    右连接跟左连接恰恰相反:

    形式: 

    from  表1  right  [outer]  join   表2   on  连接条件。

    说明:

    1      这里,right是关键字。

    2,连接条件跟内连接一样。

    3,含义是:在内连接的结果基础上,加上右边表中所有不符合连接条件的数据,相应本应放左边表的字段的位置就自动补为“null”值。

     

    1.5         全【外】连接

    形式:

    from  表1  full  [outer]  join  表2  on  连接条件;

    说明:

    1,含义:其实是左右连接的“并集”(消除重复项),即内连接的结果,加上左表中不满足条件的所有行(右边对应补null),再加上,右表中不满足条件的所有行(左边对应补null)。

    2,mysql中其实不认识全[外]连接语法,即mysql这个软件本身不支持全连接的语法。

    3,此概念在其他数据库有的存在,了解就可以。

    1.6 连接查询

    原始数据:

    1:找出索尼4G手机所属类别名称:

     

    2,找出所有属于手机数码的产品:

     

    1.6  子查询

    子查询就是把一个查询的结果当作另一个查询的条件。

    1找出索尼4G手机所属类别名称:

     

    2找出所有属于手机数码的产品

     

    使用in子查询

    in的基本语法形式为:

    where  操作数  in (值1,值2, ....)

    则in子查询就是:

    where  操作数  in ( 列子查询 );

    含义:

    表示该操作数(字段值) 等于 该子查询的其中任意一个,就算满足条件。

    找出所有属于手机数码或脑办公的产品:

     

  • 相关阅读:
    Array 对象-sort()
    vue安装
    前端面试题
    JavaScript对象原型
    CSS如何水平垂直居中?
    块格式化上下文(Block Formatting Context,BFC)
    盒子模型
    前端基础
    Markdown语法
    浏览器 滚动条 占据 y轴宽度的解决方案
  • 原文地址:https://www.cnblogs.com/zzq123/p/9967790.html
Copyright © 2011-2022 走看看