Dalam kebanyakan kes, pangkalan data mempunyai lebih daripada satu jadual. Dalam sistem pangkalan data, selalunya perlu untuk menanyakan data daripada berbilang jadual, yang dipanggil pertanyaan gabungan SQL. Dalam MySQL, klausa JOIN diperlukan untuk melaksanakan pertanyaan berkaitan. Dalam artikel ini, kita akan membincangkan cara untuk menanyakan data daripada jadual berkaitan dalam MySQL menggunakan klausa JOIN.
Secara umumnya, jadual dalam pangkalan data akan mempunyai banyak keping data. Tujuan utama pertanyaan gabungan adalah untuk mengekstrak data daripada berbilang jadual dan menggabungkan data daripada jadual ini untuk menghasilkan paparan lengkap yang mengandungi maklumat yang diperlukan.
Sebagai contoh, mari kita pertimbangkan sistem e-dagang mudah dengan dua jadual, satu jadual pelanggan dan satu lagi jadual pesanan. Jadual pelanggan mengandungi maklumat peribadi pelanggan dan jadual pesanan mengandungi butiran pesanan, seperti nombor pesanan, tarikh pesanan, nombor pelanggan, dsb. Untuk menanyakan maklumat pesanan pelanggan, anda perlu menyertai kedua-dua jadual ini.
JOIN ialah klausa SQL yang digunakan untuk menyertai data daripada berbilang jadual. Ia boleh memadankan data dalam dua atau lebih jadual antara satu sama lain untuk melaksanakan pertanyaan bersama.
Klausa JOIN membandingkan lajur dalam dua atau lebih jadual untuk menentukan hubungan antara data. Terdapat beberapa jenis klausa JOIN, yang paling biasa ialah JOIN DALAM, SERTAI KIRI dan SERTAI KANAN.
INNER JOIN ialah bentuk paling asas bagi klausa JOIN. Ia hanya mengembalikan rekod daripada kedua-dua jadual yang sepadan antara satu sama lain. Sintaks asas klausa INNER JOIN adalah seperti berikut:
SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
Antaranya, column_name menentukan nama lajur yang hendak diambil, table1 dan table2 ialah nama jadual yang hendak dicantumkan, dan column_name ialah nama lajur dalam kedua-dua jadual.
Berikut ialah contoh pertanyaan dua jadual menggunakan INNER JOIN:
SELECT customers.customer_name, orders.order_date FROM customers INNER JOIN orders ON customers.customer_id = orders.customer_id;
Pertanyaan ini akan mengembalikan nama pelanggan dan tarikh pesanan, tetapi hanya jika pelanggan yang sama wujud dalam kedua-dua pelanggan dan jadual pesanan Data akan dikembalikan hanya apabila ID ditentukan.
LEFT JOIN menambah semua rekod dalam jadual kiri berdasarkan INNER JOIN. Jika tiada padanan yang sepadan dalam jadual sebelah kanan, NULL dikembalikan. Sintaks asas klausa LEFT JOIN adalah seperti berikut:
SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;
Berikut ialah contoh pertanyaan dua jadual menggunakan LEFT JOIN:
SELECT customers.customer_name, orders.order_date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id;
Pertanyaan ini akan mengembalikan nama semua pelanggan dan pesanan mereka tarikh, termasuk Pelanggan tanpa pesanan. Jika tiada rekod pesanan untuk pelanggan, lajur Tarikh Pesanan akan memaparkan NULL.
RIGHT JOIN adalah serupa dengan LEFT JOIN, tetapi mengembalikan semua rekod dalam jadual kanan dan bukannya semua rekod dalam jadual kiri. Jika tiada padanan yang sepadan dalam jadual kiri, NULL dikembalikan. Sintaks asas klausa RIGHT JOIN adalah seperti berikut:
SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;
Berikut ialah contoh pertanyaan dua jadual menggunakan RIGHT JOIN:
SELECT customers.customer_name, orders.order_date FROM customers RIGHT JOIN orders ON customers.customer_id = orders.customer_id;
Pertanyaan ini akan mengembalikan semua pesanan dan nama pelanggan mereka milik, termasuk Tiada pesanan direkodkan oleh pelanggan. Jika tiada rekod pelanggan untuk pesanan, lajur Nama Pelanggan akan memaparkan NULL.
Dalam MySQL, klausa JOIN boleh membantu kami menanyakan data yang diperlukan dalam berbilang jadual. Pertanyaan berkorelasi membolehkan kami mendapatkan paparan data yang lebih lengkap dan lebih memahami data dalam pangkalan data. Terdapat beberapa jenis klausa JOIN, termasuk INNER JOIN, LEFT JOIN dan KANAN JOIN. Memilih jenis JOIN yang sesuai adalah sangat penting kerana ia membolehkan kami membuat pertanyaan data dengan lebih cekap dan meningkatkan prestasi pangkalan data.
Atas ialah kandungan terperinci jadual berkaitan pertanyaan mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!