Die Zeit vergeht immer überraschend schnell, ohne dass wir es merken. Die kleinere Hitze ist vorüber und wir sind in die mittlere Hitze eingetreten. Die Sonne scheint noch heller ... Leute, die draußen sind und von der Sonne umsorgt werden, ihr seid alle fleißige und liebenswerte Menschen. Sie haben dieses Kapitel von mir in verschiedenen Positionen zu Hause gelesen und können nun mit einem Klick Ihr Wissen über MySql weiter auffrischen! Überprüfen Sie die Praxisdaten der Mädchenbibliothek und die Skripte der beiden Tabellen: Link: https://pan.baidu.com/s/1bgFrP7dBBwk3Ao755pU4Qg Extraktionscode: ihg7 Einführung: Descartes-Phänomen. Schauen wir uns zunächst die beiden Tabellen an. WÄHLEN SIE * AUS Jungen; WÄHLEN SIE * AUS Schönheit; SELECT NAME, Jungenname FROM Jungen, Schönheit; Endergebnis: 12*4=48 Zeilen #Erweitert 6: Join-Abfrage Bedeutung: Wird auch als Mehrtabellenabfrage bezeichnet. Wenn die Abfragefelder aus mehreren Tabellen stammen, wird bei der Join-Abfrage das kartesische Produktphänomen verwendet: Tabelle 1 hat m Zeilen, Tabelle 2 hat n Zeilen, Ergebnis = m*n Zeilen. Ursache: Keine gültige Join-Bedingung. Lösung: Fügen Sie eine gültige Join-Bedingung hinzu. Join-Kategorie: Nach Epoche: SQL1992-Standard (192-Standard): unterstützt nur Inner Joins SQL1999-Standard (199-Standard) [Empfehlung]: unterstützt Inner Joins + Outer Joins (Left Outer und Right Outer) + Cross Joins Klassifizierung nach Funktion: Innerer Join: Equi-Join, Nicht-Equi-Join, Self-Join, Äußerer Join: Linker äußerer Join, rechter äußerer Join, vollständiger äußerer Join, Cross Join: Linker äußerer Join, rechter äußerer Join, vollständiger äußerer Join, Cross Join: WÄHLEN SIE NAME, Jungenname AUS Jungen, Schönheit WO beauty.boyfriend_id = boys.id; #I. SQL192-Standard #1. Equi-Join ① Das Ergebnis eines Multi-Table-Equi-Joins ist die Schnittmenge mehrerer Tabellen. ② Für einen n-Table-Join sind mindestens n-1 Join-Bedingungen erforderlich. ③ Es gibt keine Anforderung hinsichtlich der Reihenfolge mehrerer Tabellen. ④ Im Allgemeinen ist ein Alias für die Tabelle erforderlich. ⑤ Er kann mit allen oben eingeführten Klauseln verwendet werden, etwa zum Sortieren, Gruppieren und Filtern. #Abfrage mehrerer Tabellen, zuerst abgleichen und dann filtern#Fall 1. Fragen Sie den Namen des Mitarbeiters und den entsprechenden Abteilungsnamen ab. SELECT Vorname AS Name,Abteilungsname AS Abteilungsname FROM Mitarbeiter,Abteilungen WO Mitarbeiter.Abteilungs-ID = Abteilungen.Abteilungs-ID; #Fall 2. Abfrage des Mitarbeiternamens, der Stellennummer und der Stellenbezeichnung. Bei Feldern, die von zwei Tabellen gemeinsam genutzt werden, müssen Sie den Tabellennamen als Grenze hinzufügen, andernfalls wird ein Fehler gemeldet. Fehlerbeispiel: SELECT Vorname AS Name, Mitarbeiter.Job-ID AS Jobnummer, Jobtitel AS Jobname FROM Mitarbeiter, Jobs WO Mitarbeiter.Job-ID = Jobs.Job-ID; #2. Alias der Tabelle ① Vereinfachen Sie die Anweisung ② Unterscheiden Sie mehrere umbenannte Felder Hinweis: Wenn Sie der Tabelle einen Alias geben, kann das Abfragefeld nicht durch den ursprünglichen Tabellennamen eingeschränkt werden SELECT first_name AS name, e.job_id AS job number, job_title AS job name FROM employees AS e, jobs AS j WO e.job_id = j.job_id; Wenn Sie einer Tabelle einen Alias zuweisen und dann den vollständigen Tabellennamen zur Qualifizierung verwenden, wird ein Fehler gemeldet und dies ist nicht zulässig. Gemäß der Ausführungsreihenfolge wird FROM zuerst ausgeführt. #3. Kann die Reihenfolge der beiden Tabellennamen vertauscht werden? Ja, das ist möglich. SELECT Vorname AS Name, e.Job-ID AS Jobnummer, Jobtitel AS JobnameFROM Jobs AS j, Mitarbeiter AS e WO e.job_id = j.job_id; #4. Sie können Filter hinzufügen.#Fall 3. Fragen Sie die Namen der Mitarbeiter und Abteilungen ab, die Prämien erhalten. SELECT Vorname AS Name,Abteilungsname AS Abteilungsname,Provisionsprozentsatz AS Bonus FROM Mitarbeiter AS e,Abteilungen AS d WO e.Abteilungs-ID=d.Abteilungs-ID UND commission_pct IST NICHT NULL; #UND e.commission_pct IST NICHT NULL; #Fall 4. Fragen Sie den Städtenamen und den Abteilungsnamen ab, wobei das zweite Zeichen des Städtenamens ein „o“ ist. SELECT Stadt AS Stadt,Abteilungsname AS Abteilungsname FROM Standorte AS l,Abteilungen AS d WO l.Standort-ID = d.Standort-ID UND Stadt WIE '_o%'; #5. Sie können Gruppen hinzufügen.#Fall 1. Fragen Sie die Anzahl der Abteilungen in jeder Stadt ab. SELECT Stadt AS Stadt, COUNT(Abteilungs-ID) AS NummerFROM Standorte AS l, Abteilungen AS d WO l.Standort-ID = d.Standort-ID GRUPPE NACH l.Stadt; #Fall 2. Fragen Sie den Abteilungsnamen, die Leiternummer und das Mindestgehalt jeder Abteilung mit Bonus ab. #Achten Sie beim Abfragen nicht darauf, beide Spalten hinzuzufügen. SELECT commission_pct AS Bonus, department_name AS Abteilungsname, d.manager_id AS Führungsnummer,MIN(Gehalt) AS Mindestgehalt FROM Mitarbeiter AS e,Abteilungen AS d WO e.Abteilungs-ID = d.Abteilungs-ID UND commission_pct IST NICHT NULL GRUPPE NACH Abteilungsname, d.manager_id; #6. Sie können eine Sortierung hinzufügen.#Fall 1: Fragen Sie für jeden Stellentyp den Stellennamen und die Mitarbeiterzahl absteigend nach der Mitarbeiterzahl ab. SELECT j.job_title AS Stellenbezeichnung,COUNT(employee_id) AS NummerFROM Mitarbeiter AS e,Jobs AS j WO e.job_id = j.job_id GROUP BY Berufsbezeichnung ORDER BY Nummer DESC; #7. Drei-Tabellen-Join #Fall 1. Abfrage des Mitarbeiternamens, des Abteilungsnamens und der Stadt SELECT first_name AS name, d.manager_id AS department name, city AS city FROM employees AS e, departments AS d, locations AS l WO e.Abteilungs-ID = d.Abteilungs-ID UND d.Standort-ID = l.Standort-ID; #Fall 2. Abfrage des Mitarbeiternamens, des Abteilungsnamens und der Stadt, wobei die Stadt mit „s“ beginnt. SELECT Vorname AS Name, d.manager_id AS Abteilungsname, Stadt AS Stadt FROM Mitarbeiter AS e, Abteilungen AS d, Standorte AS l WO e.Abteilungs-ID = d.Abteilungs-ID UND d.Standort-ID = l.Standort-ID UND Stadt WIE 's%'; #Fall 3. Fragen Sie den Namen des Mitarbeiters, den Namen der Abteilung und die Stadt ab, wobei die Stadt mit „s“ beginnt, und sortieren Sie in absteigender Reihenfolge nach dem Namen. SELECT Vorname AS Name, d.manager_id AS Abteilungsname, Stadt AS Stadt FROM Mitarbeiter AS e, Abteilungen AS d, Standorte AS l WO e.Abteilungs-ID = d.Abteilungs-ID UND d.Standort-ID = l.Standort-ID UND Stadt LIKE 's%' ORDER BY Abteilungsname DESC; Fügen Sie eine neue Gehaltsstufentabelle hinzu. Tabelle erstellen Jobgrades (Klassenstufe VARCHAR(3), niedrigster_Salzgehalt int, höchster_Gehalt int); INSERT INTO job_grades WERTE ('A', 1000, 2999); INSERT INTO job_grades WERTE ('B', 3000, 5999); INSERT INTO job_grades WERTE('C', 6000, 9999); INSERT INTO job_grades WERTE('D', 10000, 14999); INSERT INTO job_grades WERTE('E', 15000, 24999); INSERT INTO job_grades WERTE('F', 25000, 40000); #2. Nicht gleichwertiger Join (Bereichsbeurteilung) #Fall 1. Gehälter und Gehaltsstufen der Mitarbeiter abfragen. SELECT Gehalt AS Gehalt, Gehaltsstufe AS Klasse FROM Mitarbeiter AS e, Berufsstufen AS g WO Gehalt ZWISCHEN g.niedrigstes_Gehalt UND g.höchstes_Gehalt; #Fall 2. Fragen Sie die Gehälter und Gehaltsstufen der Mitarbeiter ab und zeigen Sie Mitarbeiter auf Stufe A an. SELECT Gehalt AS Gehalt, Gehaltsstufe AS Klasse FROM Mitarbeiter AS e, Berufsstufen AS g WO Gehalt ZWISCHEN g.niedrigstes_Gehalt UND g.höchstes_Gehalt UND g.Klassenstufe = "A"; #3. Selbstverbindung [Verbindung mit sich selbst] #Fall 1. Fragen Sie den Namen des Mitarbeiters und den Namen des Vorgesetzten ab. Wählen Sie e.employee_id,e.last_name AS employee, m.employee_id,m.last_name AS Leiter FROM Mitarbeiter e,Mitarbeiter m WO e.manager_id = m.employee_id; Nach dem Lesen der obigen Beispiele haben Sie meiner Meinung nach ein Verständnis für Abfragen mit mehreren Tabellen. Lassen Sie es uns jetzt üben! o(^▽^)o Dies ist das Ende dieses Artikels mit der ausführlichen Erklärung der MySQL-Mehrtabellenabfrage. Weitere relevante Inhalte zur MySQL-Mehrtabellenabfrage finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: JavaScript implementiert eine Eingabefeldkomponente
>>: Natives JS zur Realisierung eines springenden Balls
Methode 1: Verwenden Sie den Befehl SET PASSWORD ...
1. Zusammenfassung: Im Allgemeinen können sie in ...
In diesem Artikel finden Sie das Installations- u...
In diesem Artikel erfahren Sie, wie Sie mit Canva...
Damit die Tabelle den Bildschirm (den verbleibende...
Heute stelle ich zwei HTML-Tags vor, die ich nich...
Zusammenfassung: Dieser Artikel zeigt, wie Avro-D...
Inhaltsverzeichnis 1. Implizite Konvertierung Kon...
MySQL5.6 So erstellen Sie SSL-Dateien Offizielle ...
Einführung: Als ich mir in letzter Zeit die Frage...
Um die folgenden beiden Dateien zusammenzuführen,...
Szenario: Mit zunehmender Datenmenge ist die Fest...
1: schreibgeschützt dient zum Sperren dieses Steue...
Lassen Sie uns ohne weitere Umschweife den Screen...
In Vue können wir lokale Komponenten selbst defin...