Es gibt drei Methoden für die Abfrage mehrerer Tabellen: 1. Traditionelle Methode, einschließlich Abfrage für den linken äußeren Join, Abfrage für den rechten äußeren Link und vollständige Abfrage für den äußeren Link. 2. Unterabfragemethode, einschließlich Abfrage für einzelne Zeilen und mehrzeilige Abfrage; 3. Aggregationsabfragemethoden, einschließlich Summierung, Durchschnittsabfrage und Gesamtzahl der Datensätze.
Es gibt drei Möglichkeiten, mehrere Tabellen abzufragen, nämlich:
Traditionelle Methode
/*-- 传统连接方式 --*/ select e.ename,d.dname from dept d , emp e where d.deptno = e.deptno /*--natural join 两张表中只有一个同名栏位时行连接 --*/ select e.ename,d.dname from dept d natural join emp e /*--using 两个表中有多个同名栏位时 --*/ select e.ename,d.dname from dept d join emp e using(deptno)
1. Linke äußere Verknüpfungsabfrage
/*--左外连结 左表的全部记录(部门表中的所有记录:demp)-- */ /*--方式1--*/ select e.ename,d.dname from dept d left outer join emp e on d.deptno = e.deptno /*--方式2--*/ select e.ename,d.dname from dept d , emp e where d.deptno = e.deptno(+)
2. Rechte äußere Verknüpfungsabfrage
/*--左外连结 左表的全部记录(部门表中的所有记录:demp)-- */ /*--方式1--*/ select e.ename,d.dname from dept d left outer join emp e on d.deptno = e.deptno /*--方式2--*/ select e.ename,d.dname from dept d , emp e where d.deptno = e.deptno(+)
3. Vollständige äußere Verknüpfungsabfrage
2. Unterabfrage (einzelne und mehrere Zeilen)
1. Einzelzeilenabfrage/*--完全外连结(匹配与不匹配)-- (包括部门表及员工表中的所有记录)*/ select e.ename,d.dname from dept d full outer join emp e on d.deptno = e.deptno
/*--子查询(单行,多行)--*/ select * from emp where sal > (select avg(sal) from emp) /*--单行子查询可以引用(=,>,>=,<,<=,<>)操作符 --*/ select * from emp e where e.deptno=(select d.deptno from dept d where d.deptno=1 )
3. Aggregationsabfrage (Summe, Durchschnitt, Gesamtzahl der Datensätze)
Summe, Durchschnittsabfrage/*--多行子查询可以引用(in,any,all)操作符--*/ select * from emp e where e.deptno in(select d.deptno from dept d) /*-- any 比较返回值中的任何一个,其中一个满足,则返回true --*/ select * from emp e where e.sal < any(select sal from emp where deptno=2) /*-- all 比较返回值中的所有,全部满足,则返回true --*/ select * from emp e where e.sal < all(select sal from emp where deptno=2)
/*--求和,平均 --*/ select sum(sal),avg(sal) from emp select avg(nvl(sal,0)) from emp
Verwandte Lernempfehlungen:
Das obige ist der detaillierte Inhalt vonEs gibt mehrere Möglichkeiten, mehrere Tabellen abzufragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!