zoukankan      html  css  js  c++  java
  • join连接

    问:查询id是1的学生所在班级的班主任的名字

    将两张表变成一张表(除了部分字段命名重复的问题以外,可以将它看成一张表):用join:

    eg: select * from mysql_day1 join scores

    答上面问题: select stu.id ,stu.name, stu.classid,class.manager from stu join class  on stu.classid = class.id where stu.id = 1

    leftjoin

    leftjoin与join的区别:

    1、left join 必须有on

    2、会检查左边表的数据是否都包含在新生成的表中

      如果是,则与join没区别;

      如果不是,则用null与不包含的行组成新行加入新表当中。

    如下: select * from stu left join class on stu.classid = class.id --->结果有null出现

      select * from class left join stu on stu.classid = class.id   --> 结果没有Null

    right join补充: 

    A right join B = B left join A

    left join 与 join的区别:

    情景一: 有两个班级,查询学生A的班主任是谁。

    思路:join俩表后,用where过滤即可

    select stu.id,stu.name from stu left join class on stu.classid = class.id where stu.name = 'A'

    情景二: 有两个班级,此时删除一个班级信息,查询出目前没有班级的人

    select stu.id,stu.name from stu left join class on stu.classid = class.id where class.id is empty

    注意:查找null时,需用is

  • 相关阅读:
    exFAT移动硬盘写保护怎么去掉
    ORACLE:一列的多行数据拼成字符串
    cxgrid中,如何根据列名或字段名取得footer值
    Delphi天气预报查询
    Delphi ListView基本用法大全
    datasnap的初步
    Delphi ListView基本用法大全
    Delphi实现树型结构
    获取身份证号码信息
    让Delphi XE5跟其他版本的Delphi共存
  • 原文地址:https://www.cnblogs.com/fjwjw/p/11543303.html
Copyright © 2011-2022 走看看