MySQL连接查询:
(尽量降低表的连接次数,表的连接数越多效率越低)
内连接:
(1)等值连接:
(MySQL92语法)
select * from book,reader where book.rid=reader.rid;
(MySQL99语法)
select * from book join reader on book.rid=reader.rid;
(2)非等值连接:
(MySQL92语法)
select e.rid,e.bid,d.pid from e,d where e.rid between d.losal and d.hisal;
(MySQL99语法)
select e.rid,e.bid,d.pid from e join d on e.rid between d.losal and d.hisal;
(3)自连接:
select a.ename,b.ename from emp a join emp b on a.mgr=b.empno;
外连接(产生了表的主次关系,主表的所有数据都会被查出来,不满足的为null):
(1)左外连接(左表为主)
select e.name,d.name from dept d left join emp e on e.deptno=d.deptno;
(2)右外连接(右表为主)
select e.name,d.name from dept d right join emp e on e.deptno=d.deptno;
一条语句中可以 同时含有内外连接,也可以多表同时连接。