zoukankan      html  css  js  c++  java
  • 多表查询

    多表查询

      查询语法:

        select * from emp,dept;   --会出现笛卡尔积

      多表查询分类:

        1.内连接查询

          隐式内连接查询:(使用)外键是空就会导致查询不了所有的数据

    select * from emp,dept where emp.dept_id=dept.id
    
    -- 正确的写法(用别名替换表,还有需要哪些字段查询哪些字段)
    select
      t1.name,t1.gender,t2.name,t2.id
    from
      emp t1,dept t2   -- 给表起别名
    where
      emp.dept_id=dept.id

          显示的内连接查询

            语法:select 字段列表 from table_name inner join table_name1 on table_name.字段=table_name1.字段 

                      select * from emp inner join dept on emp.dept_id=dept.id;

        注意事项:从哪些表中查询,条件什么(内连接的条件),查询哪些字段

        2.外连接查询

          左外连接:查询的是左表所有数据,以及其交集部分。

            语法:select 字段列表 from 表1 left [outer] join 表2 on 条件    

                        select * from emp t1 left  join dept t2 on t1.dept_id=t2.id ;

          右外连接:查询的是右表所有数据,以及其交集部分

            语法:select 字段列表 from 表1 right[outer] join 表2 on 条件

                select * from emp t1 right join dept t2 on t1.dept_id=t2.id ;

     注意多张表的时候需要使用显示的内连接(减少字段的扫描),但是隐式的内连接显然更好理解。

        3.子查询

        查询工资最高的员工

          select*from emp where salary=(select max(salary) from emp);

        子查询的结果是单行单列的:

          子查询可以作为条件使用运算符去判断(><=)

          查询工资小于平均工资少的人

                select * from emp where emp.salary<(select avg(salary) from emp);

        子查询的结果是多行单列的:

          子查询可以作为条件,使用运算符in来判断

          查询财务部和市场部所有员工的信息

          select * from emp where dept_id in (select * from dept where name in ('财务部','市场部'));

        子查询的结果是多行多列的:

          子查询是多行多列的时候可以当做一个虚拟的表参与查询

          查询所有入职日期在2011-11-11之后入职的员工所有信息

          select * from dept t1,(select * from emp where emp.join_date>'2011-11-11') t2 where t1.id=t2.dept_id;

          或者使用普通查询

          select * from emp t1,dept t2 where t1.dept_id=t2.id and dept.join_date>'2011-11-11';
  • 相关阅读:
    vs2017 vs2019 打开cs文件提示无法识别的GUID格式
    A股和B股票的区别?
    选股:“均线是水,K线是舟,量是马达!”的选美理念!
    什么是K线?K线的详解!
    5日均线MACD
    炒股的常见技术指标
    选股票几大原则:趋势原则,强势原则,分批原则
    金融蝴蝶效应
    股市里的大户和散户
    期货平仓/强制平仓/爆仓-股市平仓建仓
  • 原文地址:https://www.cnblogs.com/feixiangdecainiao/p/10803400.html
Copyright © 2011-2022 走看看