Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan pernyataan JOIN untuk menanyakan berbilang jadual pada masa yang sama dalam PHP

Cara menggunakan pernyataan JOIN untuk menanyakan berbilang jadual pada masa yang sama dalam PHP

PHPz
PHPzasal
2023-03-24 15:22:091380semak imbas

Dalam PHP, kadangkala kita perlu menanyakan data dalam berbilang jadual pangkalan data pada masa yang sama. Dalam kes ini, kami boleh menggunakan operasi JOIN, yang membolehkan kami melakukan pertanyaan gabungan dalam berbilang jadual. Dalam artikel ini, kami akan memperkenalkan cara menggunakan operasi JOIN dalam PHP untuk merealisasikan pertanyaan serentak berbilang jadual.

Operasi JOIN ialah operasi asas dalam bahasa pertanyaan SQL, membolehkan kami mendapatkan data yang diperlukan dengan menyambungkan berbilang jadual. Dalam PHP, kita boleh menggunakan MySQLi atau PDO untuk menyambung ke pangkalan data MySQL dan melaksanakan operasi JOIN.

Dalam MySQL, terdapat beberapa jenis operasi JOIN, termasuk INNER JOIN, LEFT JOIN, RIGHT JOIN dan FULL OUTER JOIN. Di sini, kami akan memperkenalkan dua daripadanya: SERTAI DALAM dan SERTAI KIRI.

INNER JOIN

INNER JOIN ialah operasi JOIN yang paling biasa digunakan. Ia hanya mengembalikan rekod yang mempunyai padanan dalam kriteria penyertaan. Operasi INNER JOIN boleh digunakan untuk menyambung data dengan mudah dalam berbilang jadual.

Sebagai contoh, kami mempunyai jadual pesanan yang menyimpan maklumat pesanan dan jadual pelanggan yang menyimpan maklumat pelanggan. Terdapat customer_id medan dalam jadual pesanan, yang digunakan untuk mewakili ID pelanggan yang sepadan dengan setiap pesanan. Kami perlu menanyakan butiran setiap pesanan dan nama pelanggan yang sepadan.

Pertama, kita perlu menggunakan pernyataan SELECT untuk memilih medan yang diperlukan, dan kemudian menggunakan operasi INNER JOIN untuk mengaitkan kedua-dua jadual Syarat sambungan ialah medan customer_id bagi jadual pesanan adalah sama dengan medan id jadual pelanggan.

SELECT o.*, c.name FROM orders o
INNER JOIN customers c
ON o.customer_id = c.id;

Dalam operasi INNER JOIN, jadual selepas kata kunci JOIN ialah jadual yang akan disambungkan dan kata kunci ON diikuti dengan syarat sambungan.

LEFT JOIN

LEFT JOIN adalah serupa dengan INNER JOIN, tetapi perbezaannya ialah ia mengembalikan semua rekod dalam jadual kiri (iaitu jadual di hadapan JOIN kata kunci), Walaupun tiada rekod yang sepadan dalam jadual yang betul.

Sebagai contoh, kami kini perlu menanyakan butiran setiap pelanggan dan maklumat pesanan terbaru mereka. Kami menggunakan operasi LEFT JOIN untuk menyambungkan jadual pelanggan dan jadual pesanan Syarat sambungan ialah medan customer_id jadual pesanan adalah sama dengan medan id jadual pelanggan.

SELECT c.*, o.order_date FROM customers c
LEFT JOIN orders o
ON c.id = o.customer_id
ORDER BY c.id;

Dalam contoh di atas, kami telah memilih semua medan jadual pelanggan dan medan tarikh_pesanan jadual pesanan. Kerana operasi LEFT JOIN, walaupun sesetengah pelanggan tidak mempunyai rekod pesanan, mereka akan tetap muncul dalam set hasil. Set hasil akan diisih mengikut medan id jadual pelanggan.

Ringkasan

Menggunakan operasi JOIN, anda boleh menanyakan data dengan mudah dalam berbilang jadual. Operasi INNER JOIN hanya mengembalikan rekod yang mempunyai padanan dalam keadaan gabungan, manakala operasi LEFT JOIN mengembalikan semua rekod dalam jadual kiri, walaupun tiada rekod sepadan dalam jadual kanan. Dalam PHP, kita boleh menggunakan MySQLi atau PDO untuk menyambung ke pangkalan data MySQL dan melaksanakan operasi JOIN. Di atas adalah pengenalan ringkas untuk menggunakan operasi JOIN untuk merealisasikan pertanyaan serentak berbilang jadual dalam PHP.

Atas ialah kandungan terperinci Cara menggunakan pernyataan JOIN untuk menanyakan berbilang jadual pada masa yang sama dalam PHP. 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