Heim >Datenbank >MySQL-Tutorial >Was ist der Unterschied zwischen JOIN und LEFT JOIN in MySQL?
Den Unterschied zwischen JOIN und LEFT JOIN in MySQL verstehen
In SQL können wir durch das Verknüpfen von Tabellen Daten aus mehreren Tabellen basierend auf bestimmten Daten kombinieren Kriterien. Zwei gängige Arten von Joins sind JOIN und LEFT JOIN.
JOIN vs. LEFT JOIN
JOIN gibt nur Zeilen zurück, die mit der Join-Bedingung übereinstimmen, wodurch im Wesentlichen eine Teilmenge von Datensätzen erstellt wird die die angegebenen Kriterien erfüllen. Andererseits ruft LEFT JOIN alle Zeilen aus der linken Tabelle ab und nur die Zeilen, die in der rechten Tabelle übereinstimmen. Zeilen ohne Übereinstimmungen in der rechten Tabelle werden mit NULL-Werten zurückgegeben.
Standard-Join-Typ in MySQL
Entgegen der Annahme des Benutzers ist der Standard-Join-Typ in MySQL INNER JOIN, was bedeutet, dass nur Zeilen einbezogen werden, die die Join-Bedingung erfüllen. Wenn Sie einen LEFT JOIN verwenden möchten, müssen Sie ihn in Ihrer Abfrage explizit angeben.
Beispiel
Bedenken Sie das folgende vom Benutzer bereitgestellte Beispiel:
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
Standardmäßig verwendet diese Abfrage INNER JOINs, die nur Jobs zurückgeben, die entsprechende Einträge in allen vier verbundenen Tabellen haben. Um es in einen LEFT JOIN umzuwandeln, ändern Sie die JOIN-Schlüsselwörter wie folgt in LEFT JOIN:
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` LEFT JOIN `DM_Server`.servers ON servers.ServerID = Jobs.Jobs_ServerID LEFT JOIN `cpod_live`.`digital_inventory` ON digital_inventory.jobname = Jobs.Jobs_Name LEFT JOIN `cpod_live`.`products` ON products.products_pdfupload = CONCAT(digital_inventory.jobname, ".pdf") LIMIT 50
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen JOIN und LEFT JOIN in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!