Technologieaustausch

DBA-Datenbankverwaltung. Externer Link

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

innerer Join

Kombinieren Sie mehrere Tabellen über Links zu einer temporären Tabelle

Wählen Sie den Header-Namen aus Tabellenname 1 aus. Inner-Join-Tabellenname 2;

select * from employee inner join departments

Wählen Sie den Header-Namen aus Tabellenname 1, Inner-Join-Tabellenname 2 und Link-Bedingung aus.

Wählen Sie * aus den Mitarbeiter-Innenverknüpfungsabteilungen auf Mitarbeiter.Abteilungs-ID = Abteilungen.Abteilungs-ID;
In der temporären neuen Tabelle können Sie die folgende Verarbeitung durchführen

Wählen Sie den Header-Namen aus Tabellenname 1, inneren Join-Tabellennamen 2 und der Link-Bedingung aus.

Äquivalenter Link: Voraussetzung ist, dass es einen Header gibt, der dieselben Daten im Link speichert

Wählen Sie * aus den Mitarbeiter-Innenverknüpfungsabteilungen auf Mitarbeiter.Abteilungs-ID = Abteilungen.Abteilungs-ID;

Nachdem Sie den Alias ​​definiert haben, müssen Sie ihn zur Darstellung des Tabellennamens verwenden

  1. wählen Sie e.* , d.dept_name
  2. von Mitarbeitern als e, innerer Join-Abteilungen als d auf e.dept_id=d.dept_id;

Fragen Sie das Gesamtgehalt jedes Mitarbeiters im Jahr 2018 ab

select name ,sum(basic+bonus) as total from employees inner join salary on employees.employee_id = salary.employee_id where year(date)=2018 group by name;

select salary.employee_id ,sum(basic+bonus) as total from employees inner join salary on employees.employee_id = salary.employee_id  where year(date)=2018 group by employee_id having total > 300000 order by total desc ,employee_id asc;查询2018年总工资大于30万的员工,按2018年总工资降序排列

Nicht äquivalenter Link: Es gibt keinen Header, der dieselben Daten in der Tabelle speichert

Wählen Sie employee_id, basic, garde aus dem inneren Gehalt und verbinden Sie wage_grade auf salary.basic zwischen wage_grade.low und wage_grade.high, wobei year(date)=2018 und month(date)=12 ist.
Grundgehalt des Mitarbeiters im Dezember 2018 abfragen

Wählen Sie garde als Ebene, count(employee_id) als Gesamtzahl der Personen aus dem Gehaltsinneren, verknüpfen Sie wage_grade auf Salary.basic zwischen wage_grade.low und wage_grade.high, wobei Jahr (Datum) = 2018 und Monat (Datum) = 12, Gruppe nach Garde; 2018 Anzahl der Mitarbeiter auf Grundgehaltsniveau im Dezember

Beispiel für die Verbindung von 3 Tischen

Wählen Sie Name, Grundstufe, Gehalt aus den Mitarbeitern. Innerer Join-Gehalt auf Mitarbeiter.Mitarbeiter-ID = Gehalt.Mitarbeiter-ID. Innerer Join-Lohnstufe auf Gehalt.Grundstufe zwischen Lohnstufe.niedrig und Lohnstufe.hoch, wobei Jahr(Datum)=2018 und Monat(Datum)=12;

Externe Linkabfrage

Externe Links vergleichen die Unterschiede zwischen zwei Tabellen

Der linke Link verwendet zum Vergleich die Daten in der linken Tabelle und die Daten in der rechten Tabelle. Das Ausgabeergebnis zeigt alle Daten im linken Tabellenkopf.

Auf der rechten Seite werden nur Zeilen angezeigt, die mit dem Link übereinstimmen

Wählen Sie den Header-Namen aus Tabellenname 1 aus. Linker Jion-Tabellenname 2 bei Link-Bedingung;

Wählen Sie den Header-Namen aus Tabellenname 1 aus, wobei die Link-Bedingung |group by| | beträgt.

Wählen Sie „dept_name“, Name aus den Abteilungen links, und schließen Sie sich Mitarbeitern unter „dept.dept_id=employees.dept_id“ an, wobei der Name null ist.
 

Der rechte Link verwendet zum Vergleich die Daten in der rechten Tabelle und die Daten in der linken Tabelle, und alle Daten im rechten Tabellenkopf des Ausgabeergebnisses werden angezeigt.

Auf der rechten Seite werden nur Zeilen angezeigt, die mit dem Link übereinstimmen

Wählen Sie den Header-Namen aus Tabellenname 1 aus.

mysql> select dept_name,name aus den Abteilungen als d, direkter Join von Mitarbeitern als e auf d.dept_id=e.dept_id, wobei dept_name null ist;

Mitarbeiter aktualisieren, dept_id=11 festlegen, wobei name="bob";

Vollständige Linkabfrage

Fügen Sie die von mehreren Auswahlbefehlen abgefragten Zeilen zusammen. Bei Mehrfachauswahlabfragen muss die Anzahl der Tabellenüberschriften konsistent sein.

Ausgabe doppelter Zeilen entfernt

mysql> (Wählen Sie Datum, Max (Basis) als Gehalt aus Gehalt, wobei Datum = 20180110) Union (Wählen Sie Datum, Min (Basis) aus Gehalt, wobei Datum = 20180110);

(Abfragebefehl auswählen) Union (Abfragebefehl auswählen);

Ausgabe ohne Deduplizierung

Abfragebefehl auswählen) Union All (Abfragebefehl auswählen);

Verschachtelte Abfragen

Der Befehl „Abfrage auswählen“ enthält den Befehl „Abfrage auswählen“.

Verschachtelte Abfragegruppierung nach „wo“.

Wählen Sie den Header-Namen aus der Datei „library.table“ aus, wobei das Beurteilungssymbol für den Header-Namen gilt (Abfragebefehl auswählen).

Wählen Sie Mitarbeiter-ID, Datum, Grundgehalt, Bonus aus dem Gehalt, wobei Jahr(Datum)=2018 und Monat(Datum)=12 und Grundgehalt > (Wählen Sie Grundgehalt aus dem Gehalt, wobei Jahr(Datum)=2018 und Monat(Datum)=12 und Mitarbeiter-ID=100);


Nachdem Sie verschachtelte Abfragen durchgeführt haben, verwenden Sie die Abfrageergebnisse in () als Filterbedingungen.

Wählen Sie den Header-Namen aus der Datei „library.table“ mit dem Header-Namen-Beurteilungssymbol aus (Abfragebefehl auswählen).

select dept_id , count(name) als Gesamtsumme der Mitarbeitergruppe nach dept_id

mit insgesamt < (

Wählen Sie Anzahl(Name) aus den Mitarbeitern, wobei dept_id=(

Wählen Sie dept_id aus den Abteilungen aus, wobei dept_name='Entwicklungsabteilung' ist.

Verschachteln Sie die Abfrage nach „from“ und verwenden Sie die Abfrageergebnisse von () als Tabelle

Header-Namen aus (Abfrageergebnis auswählen) als temporären Tabellennamen auswählen, wobei Filterbedingung gilt;

Wählen Sie Mitarbeiter-ID, Name, E-Mail, Abteilungsname aus (wählen Sie d.Abteilungsname, e.* aus Abteilungen als d, verbinden Sie Mitarbeiter als e auf d.Abteilungs-ID=e.Abteilungs-ID) als temporäre Tabelle, wobei Abteilungs-ID=3 ist;

Verschachtelte Abfrage nach Auswahl

Wählen Sie den Header-Namen (Abfragebefehl auswählen) als Header-Namen aus der Bibliothek.table aus, wobei Filterbedingung gilt.

Wählen Sie d.*, (Wählen Sie Anzahl (Name) aus Mitarbeitern als e, wobei d.dept_id = e.dept_id) als vumen aus Abteilungen als d;