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
Lepaskan: 2024-11-25 16:13:11
asal
810 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan