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
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:
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
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
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!