Latest web development tutorials

SQLite Joins

SQLite istJoins Klausel zwei oder mehrere Tabellen in den Datenbankeinträgen zu kombinieren.JOIN ist ein gemeinsamer Wert von zwei Feldern in der Tabelleneinrichtung kombiniert.

SQL definiert drei Hauptarten von Verbindungen:

  • Cross-Connect - CROSS JOIN

  • En - INNER JOIN

  • Externer Anschluss - OUTER JOIN

Bevor wir weitermachen, wollen wir annehmen, dass es zwei Tabellen Unternehmens- und Abteilungs. Wir haben verwendet sehen COMPANY Tabelle INSERT-Anweisung zu füllen. Nun lassen Sie uns UNTERNEHMEN Tabellensätze unten aufgeführten übernehmen:

ID Name Alter ADRESSE GEHALT
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20.000,0
2 Allen 25 Texas 15.000,0
3 Teddy 23 Norwegen 20.000,0
4 Mark 25 Reiche-Mond 65.000,0
5 David 27 Texas 85.000,0
6 Kim 22 Süd-Halle 45.000,0
7 James 24 Houston 10000.0

Eine weitere Tabelle ist DEPARTMENT, ist wie folgt definiert:

CREATE TABLE DEPARTMENT (
   ID INT PRIMARY KEY NOT NULL,
   DEPT CHAR (50) NOT NULL,
   EMP_ID INT NOT NULL
);

Hier finden Sie eine INSERT-Anweisung gefüllt Tabelle DEPARTMENT:

INSERT INTO department (ID, DEPT, EMP_ID)
VALUES (1, IT-Billing ", 1);

INSERT INTO department (ID, DEPT, EMP_ID)
VALUES (2, 'Engineering ", 2);

INSERT INTO department (ID, DEPT, EMP_ID)
VALUES (3, 'Finance', 7);

Schließlich haben wir die folgende Liste der Datensätze in der Tabelle DEPARTMENT:

ID DEPT EMP_ID
---------- ---------- ----------
1 Billing 1
2 Engi 2
3 Finanzen 7

Cross-Connect - CROSS JOIN

Cross-Connect (CROSS JOIN) jede Zeile der ersten Tabelle mit jeder Zeile der zweiten Tabelle entsprechen. Wenn sowohl die Eingangstabellenspalten x und y bzw. hat die Ergebnistabelle x + y Spalten. Da die Cross-Connect (CROSS JOIN) eine sehr große Tabelle erzeugen können, müssen Sie vorsichtig, wenn Sie nur mit ihnen, wenn angemessen.

Hier ist die Syntax für die Cross-Connect (CROSS JOIN) von:

SELECT ... FROM table1 CROSS JOIN table2 ...

Basierend auf der obigen Tabelle können wir eine Cross-Connect (CROSS JOIN) schreiben, wie folgt:

sqlite> SELECT EMP_ID, NAME, DEPT VON UNTERNEHMEN CROSS JOIN DEPARTMENT;

Die obige Abfrage werden die folgenden Ergebnisse erzielt:

EMP_ID Name DEPT
---------- ---------- ----------
1 Paul IT Billing
2 Paul Engi
7 Paul Finanzen
1 Allen IT Billing
2 Allen Engi
7 Allen Finanzen
1 Teddy IT Billing
2 Teddy Engi
7 Teddy Finanzen
1 Mark IT Billing
2 Mark Engi
7 Mark Finanzen
1 David IT Billing
2 David Engi
7 David Finanzen
1 Kim IT Billing
2 Kim Engi
7 Kim Finanzen
1 James IT Billing
2 James Engi
7 James Finanzen

En - INNER JOIN

Inner-Verbindung (INNER JOIN) eine neue Ergebnistabelle kombinieren zwei Tabellen (Tabelle 1 und Tabelle 2) Joinvergleichselement Spaltenwerte zu erstellen. Anfragen werden Tabelle1 und Tabelle2 in jeder Zeile in jeder Reihe sind verglichen alle Zeilen zu finden, die das Prädikat passenden Paare verbinden erfüllen. Wenn Sie zufrieden sind Prädikat Spaltenwerte A verbinden und B jeweils passende Zeile des Ergebnisses wird in einer Zeile zusammengefügt werden.

Inner-Verbindung (INNER JOIN) ist die häufigste Art der Verbindung ist die Standard-Verbindungstyp. INNER Schlüsselwort ist optional.

Hier ist die Syntax für eine innere Verknüpfung (INNER JOIN) von:

SELECT ... FROM table1 [INNER] JOIN Tabelle2 ON bedingter_Ausdruck ...

Um Redundanz zu vermeiden und die Formulierung kurz zu halten, können Sie die Anweisung in derUSING Ausdruck Verbindung (INNER JOIN) Bedingungen.Dieser Ausdruck gibt eine Liste von einer oder mehreren Spalten:

SELECT ... FROM table1 JOIN Tabelle2 UNTER VERWENDUNG (column1, ...) ...

Natürliche Verbindung (NATURAL JOIN) ähneltJOIN ... weiter verwenden,aber es wird den gleichen Wert zwischen dem Wert der beiden Tabellen in jeder Spalte automatisch zu prüfen , auf das Vorhandensein von:

SELECT ... FROM table1 NATURAL JOIN table2 ...

Basierend auf der obigen Tabelle können wir eine innere Verknüpfung schreiben (INNER JOIN), wie folgt:

sqlite> SELECT EMP_ID, NAME, JOIN DEPT VON UNTERNEHMEN INNER DEPARTMENT
        ON COMPANY.ID = DEPARTMENT.EMP_ID;

Die obige Abfrage werden die folgenden Ergebnisse erzielt:

EMP_ID Name DEPT
---------- ---------- ----------
1 Paul IT Billing
2 Allen Engi
7 James Finanzen

Externer Anschluss - OUTER JOIN

Externer Anschluss (OUTER JOIN) ist eine innere Verknüpfung (INNER JOIN) Erweiterungen. Obwohl SQL - Standard drei Typen definiert von Outer - Joins: links, rechts, voll, aber SQLite unterstützt nuräußere Verknüpfung links (LEFT OUTER JOIN).

Externer Anschluss (OUTER JOIN) angegebenen Bedingungen und das Verfahren der inneren Verbindung (INNER JOIN) sind die gleichen, die Verwendung von ON, NATURAL Schlüsselwort oder Ausdruck. Erste Ergebnisse Tabelle wird in der gleichen Weise berechnet. Sobald die Berechnungen primäre Verbindung, externe Geräte angeschlossen werden (OUTER JOIN) aus einem oder zwei Tabellen sind nicht auf eine Linie in der Zusammenführung verbunden ist, äußere Säule mit einem NULL-Wert kommen, bringen Sie sie an der Ergebnistabelle.

Hier ist die Syntax für eine linke äußere Verknüpfung (LEFT OUTER JOIN) von:

SELECT ... FROM table1 LEFT OUTER table2 AUF bedingter_Ausdruck JOIN ...

Um Redundanz zu vermeiden und die Formulierung kurz zu halten, können Sie die Anweisungusing Ausdrücke verwenden Outer - Joins (OUTER JOIN) Bedingungen.Dieser Ausdruck gibt eine Liste von einer oder mehreren Spalten:

SELECT ... FROM table1 LEFT OUTER JOIN Tabelle2 weiter verwenden (column1, ...) ...

Basierend auf der obigen Tabelle können wir eine externe Verbindung (OUTER JOIN) zu schreiben, wie folgt:

sqlite> SELECT EMP_ID, NAME, DEPT VON DEPARTMENT LEFT OUTER JOIN UNTERNEHMEN
        ON COMPANY.ID = DEPARTMENT.EMP_ID;

Die obige Abfrage werden die folgenden Ergebnisse erzielt:

EMP_ID Name DEPT
---------- ---------- ----------
1 Paul IT Billing
2 Allen Engi
            Teddy
            Mark
            David
            Kim
7 James Finanzen