Heim > Datenbank > MySQL-Tutorial > Was ist der Standard-JOIN-Typ in MySQL und wie unterscheidet er sich von LEFT JOIN?

Was ist der Standard-JOIN-Typ in MySQL und wie unterscheidet er sich von LEFT JOIN?

Patricia Arquette
Freigeben: 2024-11-16 08:56:02
Original
299 Leute haben es durchsucht

What is the default JOIN type in MySQL and how does it differ from LEFT JOIN?

Verstehen von JOIN vs. LEFT JOIN in MySQL

Die JOIN-Operationen von MySQL ermöglichen es uns, Daten aus mehreren Tabellen zu kombinieren, indem wir gemeinsame Spalten zwischen ihnen angeben. Es ist jedoch wichtig, die Unterschiede zwischen verschiedenen Join-Typen zu verstehen, insbesondere INNER JOIN und LEFT JOIN.

Betrachten Sie die folgende datenbankübergreifende Abfrage:

SELECT
            `DM_Server`.`Jobs`.*,
            `DM_Server`.servers.Description AS server,
            digital_inventory.params,
            products.products_id,
            products.products_pdfupload,
            customers.customers_firstname,
            customers.customers_lastname
        FROM `DM_Server`.`Jobs`
        INNER JOIN `DM_Server`.servers ON servers.ServerID = Jobs.Jobs_ServerID
        JOIN `cpod_live`.`digital_inventory` ON digital_inventory.jobname = Jobs.Jobs_Name
        JOIN `cpod_live`.`products` ON products.products_pdfupload = CONCAT(digital_inventory.jobname, ".pdf")
        JOIN `cpod_live`.`customers` ON customers.customers_id = products.cID
        ORDER BY `DM_Server`.`Jobs`.Jobs_StartTime DESC LIMIT 50
Nach dem Login kopieren

Abfrageausführungsfehler mit LEFT JOIN

Wenn Sie versuchen, alle INNER JOINs in LEFT JOINs in der Abfrage zu konvertieren, kann ein Fehler auftreten. Dies liegt daran, dass MySQL standardmäßig INNER JOIN verwendet, wenn kein expliziter Join-Typ angegeben ist. LEFT JOIN muss explizit mit dem Schlüsselwort „LEFT JOIN“ angegeben werden.

Standard-Join-Typ

Entgegen der landläufigen Meinung ist der Standard-Join-Typ in MySQL nicht LEFT JOIN aber INNER JOIN. Inner-Joins geben nur Zeilen zurück, die übereinstimmende Werte in den Join-Spalten aller an der Abfrage beteiligten Tabellen haben.

Visuelle Darstellung von Joins

Um den Unterschied zwischen INNER besser zu verstehen JOIN und LEFT JOIN, berücksichtigen Sie die folgenden visuellen Darstellungen:

  • INNER JOIN:
Table 1 | Column A | Column B
--------+---------+---------
1       | A1       | B1
2       | A2       | B2

Table 2 | Column C | Column D
--------+---------+---------
1       | C1       | D1
2       | C2       | D2

Result:

| Column A | Column B | Column C | Column D |
|---|---|---|---|
| A1       | B1       | C1       | D1
Nach dem Login kopieren
  • LEFT JOIN:
Table 1 | Column A | Column B
--------+---------+---------
1       | A1       | B1
2       | A2       | B2

Table 2 | Column C | Column D
--------+---------+---------
1       | C1       | D1

Result:

| Column A | Column B | Column C | Column D |
|---|---|---|---|
| A1       | B1       | C1       | D1
| A2       | B2       | NULL     | NULL
Nach dem Login kopieren

Wie Sie sehen können, schließt LEFT JOIN alle Zeilen aus der linken Tabelle (Tabelle 1) ein und gleicht sie mit Zeilen aus der rechten Tabelle (Tabelle 2) ab, wenn es Übereinstimmungen gibt . Wenn es keine Übereinstimmungen gibt, werden NULL-Werte für die fehlenden Spalten eingefügt.

Das obige ist der detaillierte Inhalt vonWas ist der Standard-JOIN-Typ in MySQL und wie unterscheidet er sich von LEFT JOIN?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage