Rumah >pangkalan data >tutorial mysql >jadual berkaitan pertanyaan mysql

jadual berkaitan pertanyaan mysql

WBOY
WBOYasal
2023-05-08 09:35:072655semak imbas

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.

  1. Apakah pertanyaan berkaitan?

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.

  1. Apakah klausa JOIN?

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.

  1. INNER JOIN

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.

  1. LEFT JOIN

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.

  1. RIGHT JOIN

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.

  1. Ringkasan

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!

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
Artikel sebelumnya:mysql menukar aksaraArtikel seterusnya:mysql menukar aksara