博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多表查询
阅读量:4613 次
发布时间:2019-06-09

本文共 1618 字,大约阅读时间需要 5 分钟。

多表查询

  查询语法:

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

  多表查询分类:

    1.内连接查询

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

select * from emp,dept where emp.dept_id=dept.id-- 正确的写法(用别名替换表,还有需要哪些字段查询哪些字段)select  t1.name,t1.gender,t2.name,t2.idfrom  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';

 

转载于:https://www.cnblogs.com/feixiangdecainiao/p/10803400.html

你可能感兴趣的文章
回溯法算法框架
查看>>
残差学习【转载】
查看>>
0302 关于IT行业的就业感想
查看>>
3、流程语句相关练习
查看>>
30、git 使用
查看>>
iOS网络-02-数据解析(JSON与XML)
查看>>
python列表求和的几种等效电路
查看>>
Luogu P3393 逃离僵尸岛
查看>>
Flatten Binary Tree to Linked List
查看>>
Edit Distance
查看>>
软件工程第一次作业补充
查看>>
N76E003---输入捕获
查看>>
poj 1094 Sorting It All Out(拓扑排序)
查看>>
acdream B - 郭式树 (水题 卡cin,cout, 卡LL)
查看>>
BMP图像格式
查看>>
python的匿名函数lambda解释及用法
查看>>
c#遍历Dictionary使用KeyValuePair
查看>>
defineProperties属性的运用==数据绑定
查看>>
关于 IOS 发布的点点滴滴记录(一)
查看>>
《EMCAScript6入门》读书笔记——14.Promise对象
查看>>