mysql,多表的内外连接+子查询】的更多相关文章

表: student house course 关系:student_course 多对多 student house 多对一 需求:查询房间1 的学生 都学习了什么课程 select s.s_name,c.c_name from student s left outer join student_course sc on (s.sid=sc.sid) left outer join house h on (s.hid=h.hid) left outer join course c on (sc…
用两个表(a_table.b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接.外连接( 左(外)连接.右(外)连接.全(外)连接). MySQL版本:Server version: 5.6.31 MySQL Community Server (GPL) 数据库表:a_table.b_table 主题:内连接.左连接(左外连接).右连接(右外连接).全连接(全外连接) 表为: 内连接: 1. 交叉连接查询(基本不会使用-得到的是两个表的乘积)…
-- 内连接:-- 显示员工姓名.工资和公司所在地 select e.ename, e.sal, d.dname from emp e,dept d; -- 笛卡尔积 select e.ename, e.sal, d.dname from emp e join dept d; -- oracle语法错误,没有笛卡尔积:mysql 没有语法错误 select e.ename, e.sal, d.dname from emp e, dept d where e.deptno = d.deptno;…
目的 1.为了备战过两天的面试,我又重新给孙老师的课件看了一遍,学累了,就写写自己的新的体会,和遇到的问题,来进行一个记录,这是知识产出的过程,据说可以帮助我学习,看视频什么的都是被动学习,不进行及时总结,可能两天就忘了.根据艾宾什么斯遗忘曲线,学完了30天不看就约等于没学(由此可见我上次写的20理综选择题错很多不是偶然..),所以这次我要在老师的基础上进行知识点的总结,不是上次的生搬硬套. 想法 2.经过上午近三个小时的敲sql语句,我好像突然懂了!注意格式,不能着急,循序渐进就可以.我开始学…
1. Select- subquery子查询 子查询:是将一条查询语句嵌套在另一条查询语句之中. 2. 案例 需求:查询获得代课天数最多的那个老师的信息. 思路:先获得最多的代课天数是多少天,然后再判断哪个老师的代课天数和最大值是一样的.MySQL允许将上面的查询结果,作为一个值来使用. 即: var1 = Select max(days) from teacher_class:/* 保存起来 */ Select  t_name,gender from teacher_class where d…
--连接查询的三种格式 select ename, deptno,dname from emp natural join dept; select ename, deptno,dname from emp join dept using(deptno); select emp.ename, emp.deptno,dept.dname from emp join dept on emp.deptno!=dept.deptno; --自连接,将一张表当成两张表来看待 select e.ename,m…
最经做项目时发现的问题,好像在update时也有... 网上查到的资料如下: 1.使用mysql进行delete from操作时,若子查询的 FROM 字句和更新/删除对象使用同一张表,会出现错误. mysql> DELETE FROM tab1 WHERE col1 = ( SELECT MAX( col1 ) FROM tab1 ); ERROR 1093 (HY000): You can’t specify target table ‘tab1′ for update in FROM cl…
子查询: 子查询,即嵌套在其他查询中的查询.例如我们有这样几个表,顾客表,订单表,商品表,我们想知道有哪些客户买了商品A,那么我们就需要先查看哪些订单里包含了商品A,然后根据订单查出是哪些客户. mysql> select cust_id from orders where order_num in (select order_num from orderitems where prod_id = '1'); +---------+ | cust_id | +---------+ |    10…
? 1 **SQL多表连查** ? 1 2 3 4 5 6 7 8 --查询员工和部门信息 select * from emp e,dept d where e.deptno=d.deptno --查询员工姓名,部门名称 select e.ename,d.dname from emp e,dept d where e.deptno = d.deptno --查询所有员工姓名,部门名称 select e.*, d.dname from emp e,dept d where e.deptno=d.d…
1. 内连接(自然连接) 2. 外连接 (1)左外连接 (左边的表不加限制)(2)右外连接(右边的表不加限制)(3)全外连接(左右两表都不加限制) 3. 自连接(同一张表内的连接) SQL的标准语法:select table1.column,table2.column from table1 [inner | left | right | full ] join table2 ontable1.column1 = table2.column2; inner join 表示内连接: left jo…