Heim >Datenbank >MySQL-Tutorial >Inner Join vs. Union in Microsoft Access: Wann sollte ich beide verwenden, um Daten aus mehreren Tabellen abzurufen?
Microsoft Access-Datenabruf: Anwendungsszenarien von INNER JOIN und UNION
In einer Microsoft Access-Datenbank müssen Sie möglicherweise Daten aus mehreren Tabellen mit verwandten Beziehungen abrufen. Dies kann mit INNER JOIN oder UNION erreicht werden. Welche Methode Sie wählen, hängt von Ihren spezifischen Anforderungen ab.
INNER JOIN (innere Verbindung)
INNER JOIN wird verwendet, um Datensätze mit übereinstimmenden Zeilen aus mehreren Tabellen basierend auf angegebenen Kriterien abzurufen. Sie müssen beispielsweise Daten aus den Tabellen tbl_facilitators
und tbl_facilitatorClasses
abrufen, basierend auf den Spalten primeFacil
bzw. secondFacil
.
INNER JOIN verwendet das Schlüsselwort ON
, um Übereinstimmungsbedingungen anzugeben. Hier ist eine Beispielabfrage:
<code class="language-sql">SELECT tbl_facilitatorClasses.className, tbl_facilitators.facilLname, tbl_facilitators.facilFname FROM tbl_facilitatorClasses INNER JOIN tbl_facilitators ON tbl_facilitatorClasses.primeFacil = tbl_facilitators.facilID;</code>
Diese Abfrage ruft den Kursnamen, den Nachnamen und den Vornamen des Hauptlehrers für Datensätze ab, deren tbl_facilitatorClasses
-Wert in primeFacil
mit dem tbl_facilitators
-Wert in facilID
übereinstimmt.
UNION
UNION kombiniert die Ergebnisse von zwei oder mehr Abfragen in einem einzigen Ergebnissatz. In diesem Beispiel verwenden Sie UNION, um Daten für primäre und sekundäre Berater getrennt abzurufen. Sie müssen die Ergebnisse jedoch manuell kombinieren, um die gewünschte Ausgabe zu erstellen.
Lösung
Um die primären und sekundären Beraterdaten im erwarteten Format abzurufen, sind mehrere INNER JOINs erforderlich. Die Abfrage in der von Ihnen bereitgestellten Lösung ist korrekt:
<code class="language-sql">SELECT tblCLS.className, tblP.facilLname, tblP.facilFname, tblS.facilLname, tblS.facilFname FROM (tbl_facilitatorClasses AS tblCLS INNER JOIN tbl_facilitators AS tblP ON tblCLS.primeFacil=tblP.facilID) INNER JOIN tbl_facilitators AS tblS ON tblCLS.secondFacil=tblS.facilID;</code>
Diese Abfrage verwendet Klammern, um den ersten INNER JOIN zu umgeben, um die korrekte Reihenfolge der Operationen sicherzustellen und indem die Spalten tbl_facilitatorClasses
und primeFacil
in secondFacil
mit der Spalte tbl_facilitators
in facilID
abgeglichen werden, um die erforderliche Ausgabe abzurufen für die primären und sekundären Berater.
Das obige ist der detaillierte Inhalt vonInner Join vs. Union in Microsoft Access: Wann sollte ich beide verwenden, um Daten aus mehreren Tabellen abzurufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!