Heim > Datenbank > MySQL-Tutorial > Hauptteil

Es gibt mehrere Möglichkeiten, mehrere Tabellen abzufragen

coldplay.xixi
Freigeben: 2020-06-29 11:24:48
Original
12233 Leute haben es durchsucht

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)
Nach dem Login kopieren

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(+)
Nach dem Login kopieren
Nach dem Login kopieren

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(+)
Nach dem Login kopieren
Nach dem Login kopieren

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
Nach dem Login kopieren

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 )
Nach dem Login kopieren

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)
Nach dem Login kopieren

2

/*--求和,平均 --*/
 
select sum(sal),avg(sal) from emp
 
select avg(nvl(sal,0)) from emp
Nach dem Login kopieren
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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!