Heim  >  Artikel  >  Datenbank  >  Grundlegende MySQL-Fallfreigabe für mehrere Tabellenabfragen

Grundlegende MySQL-Fallfreigabe für mehrere Tabellenabfragen

WBOY
WBOYnach vorne
2022-11-01 15:13:531477Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über MySQL. Er stellt hauptsächlich die relevanten Inhalte zur Multi-Table-Abfrage und zum Teilen von Fällen vor, einschließlich der Abfrage des Namens, des Alters, der Position usw. Werfen wir einen Blick darauf , hoffe es hilft allen.

Empfohlenes Lernen: MySQL-Video-Tutorial

Fall für mehrere Tabellenabfragen

Vorbereitung der Datenumgebung

create table salgrade(
grade int,
losal int,
hisal int
) comment '薪资等级表';
insert into salgrade values (1,0,3000);
insert into salgrade values (2,3001,5000);
insert into salgrade values (3,5001,8000);
insert into salgrade values (4,8001,10000);
insert into salgrade values (5,10001,15000);
insert into salgrade values (6,15001,20000);
insert into salgrade values (7,20001,25000);
insert into salgrade values (8,25001,30000);

In diesem Fall verwenden wir hauptsächlich die oben erläuterte Syntax der Mehrtabellenabfrage, um die folgenden 12 abzuschließen Die Anforderungen reichen aus, und hier sind nur drei Tabellen beteiligt: ​​die Emp-Mitarbeitertabelle, die Dept-Abteilungstabelle und die Salgrade-Gehaltsstufentabelle.

Name, Alter, Position und Abteilungsinformationen des Mitarbeiters abfragen (implizite innere Verknüpfung)

Tabelle: emp, dept

Join-Bedingungen: emp.dept_id = dept.id

select e.name , e.age , e.job , d.name from emp e , dept d where e.dept_id = d.id;

Alter unter The abfragen Name, Alter, Position und Abteilungsinformationen eines 30-jährigen Mitarbeiters (explizite Inner Join)

Tabelle: emp, dept

Join-Bedingungen: emp.dept_id = dept.id

select e.name , e.age , e.job , d.name from emp e inner join dept d on e.dept_id =d.id where e.age < 30;

Abfrage die Abteilungs-ID des Mitarbeiters, Abteilungsname

Tabelle: emp, abt

Verbindungsbedingungen: emp.dept_id = abt.id

select distinct d.id , d.name from emp e , dept d where e.dept_id = d.id;

Fragen Sie alle Mitarbeiter ab, die älter als 40 Jahre sind, und deren Abteilungsnamen ist keine zugewiesene Abteilung und muss angezeigt werden (externe Verbindung)

Tabelle: emp, dept

Verbindungsbedingungen: emp.dept_id = dept.id

select e.*, d.name from emp e left join dept d on e.dept_id = d.id where e.age >40 ;

Gehaltsstufe aller Mitarbeiter abfragen

Tabelle: emp, salgrade

Verbindungsbedingungen: emp.salary >= salgrade.losal und emp.salary <= salgrade.hisal

-- 方式一
select e.* , s.grade , s.losal, s.hisal from emp e , salgrade s where e.salary >=
s.losal and e.salary <= s.hisal;
-- 方式二
select e.* , s.grade , s.losal, s.hisal from emp e , salgrade s where e.salary
between s.losal and s.hisal;

Empfohlenes Lernen: MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonGrundlegende MySQL-Fallfreigabe für mehrere Tabellenabfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen