Heim  >  Artikel  >  Datenbank  >  Es gibt mehrere Möglichkeiten, mehrere Tabellen abzufragen

Es gibt mehrere Möglichkeiten, mehrere Tabellen abzufragen

coldplay.xixi
coldplay.xixiOriginal
2020-06-29 11:23:4612197Durchsuche

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 mehrere Möglichkeiten, mehrere Tabellen abzufragen

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

2. Mehrzeilenabfrage


/*--子查询(单行,多行)--*/
 
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)

2

/*--求和,平均 --*/
 
select sum(sal),avg(sal) from emp
 
select avg(nvl(sal,0)) from emp

Verwandte Lernempfehlungen:

MySQL-Video-Tutorial

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn