Rumah >pangkalan data >tutorial mysql >Apakah perbezaan antara JOIN dan LEFT JOIN dalam MySQL?

Apakah perbezaan antara JOIN dan LEFT JOIN dalam MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-25 16:13:11740semak imbas

What is the difference between JOIN and LEFT JOIN in MySQL?

Memahami Perbezaan antara JOIN dan LEFT JOIN dalam MySQL

Dalam SQL, menyertai jadual membolehkan kami menggabungkan data daripada berbilang jadual berdasarkan spesifik kriteria. Dua jenis gabungan biasa ialah JOIN dan LEFT JOIN.

JOIN vs LEFT JOIN

JOIN hanya mengembalikan baris yang sepadan dengan syarat gabungan, pada asasnya mencipta subset rekod yang memenuhi kriteria yang ditetapkan. Sebaliknya, LEFT JOIN mengambil semua baris dari jadual kiri dan hanya baris yang mempunyai padanan dalam jadual kanan. Baris tanpa padanan dalam jadual kanan dikembalikan dengan nilai NULL.

Jenis Sertaan Lalai dalam MySQL

Bertentangan dengan andaian pengguna, jenis gabungan lalai dalam MySQL ialah INNER JOIN, yang bermaksud bahawa ia hanya termasuk baris yang memenuhi syarat gabungan. Jika anda ingin menggunakan LEFT JOIN, anda mesti menyatakannya secara eksplisit dalam pertanyaan anda.

Contoh

Pertimbangkan contoh berikut yang diberikan oleh pengguna:

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

Secara lalai, pertanyaan ini menggunakan INNER JOIN, yang hanya mengembalikan kerja yang mempunyai entri sepadan dalam keempat-empat yang disertai meja. Untuk menukarnya kepada LEFT JOIN, anda akan menukar kata kunci JOIN kepada LEFT JOIN, seperti berikut:

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

Atas ialah kandungan terperinci Apakah perbezaan antara JOIN dan LEFT JOIN dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn