Heim >Datenbank >MySQL-Tutorial >Was ist der Unterschied zwischen JOIN und LEFT JOIN in MySQL?

Was ist der Unterschied zwischen JOIN und LEFT JOIN in MySQL?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-25 16:13:11740Durchsuche

What is the difference between JOIN and 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!

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