Dalam reka bentuk pangkalan data, selalunya perlu melakukan pertanyaan data antara jadual yang berbeza untuk mendapatkan maklumat data yang diperlukan. Sebagai bahasa pengaturcaraan yang digunakan secara meluas, PHP menyediakan banyak kaedah pertanyaan untuk mencapai matlamat ini. Dalam artikel ini, kami akan memperkenalkan cara untuk menanyakan dua jadual dalam pangkalan data yang sama, bertujuan untuk membantu pemula menguasai kemahiran ini dengan lebih baik.
Langkah satu: Fahami SQL join
Untuk pertanyaan data dalam dua jadual berbeza, kita perlu menggunakan SQL join query. Pertanyaan gabungan SQL pada asasnya menyertai dua atau lebih jadual untuk membentuk set hasil yang lebih besar. Dalam bahasa SQL, terdapat tiga jenis pertanyaan sambung: sambung dalam, sambung kiri dan sambung kanan. Jenis ini berbeza dalam cara mereka menyertai jadual dan julat hasil yang mereka kembalikan.
Caburan dalaman ialah kaedah cantum yang paling biasa digunakan, ia hanya mengembalikan hasil dengan baris yang sepadan antara dua jadual. Cantuman kiri dan cantuman kanan adalah serupa dengan cantuman dalam, kecuali cantuman itu mengembalikan julat hasil yang lebih luas. Cantuman kiri merangkumi semua baris daripada jadual di sebelah kiri, manakala cantuman kanan mengembalikan semua baris daripada jadual di sebelah kanan.
Langkah 2: Tulis pernyataan pertanyaan sertai
Kita boleh menggunakan pernyataan SELECT untuk melaksanakan pertanyaan gabungan. Kunci kepada pertanyaan ialah cara untuk menggabungkan dua jadual bersama-sama. Ini bergantung pada hubungan dan keperluan antara data Secara amnya, kita perlu mengetahui sama ada kedua-dua jadual mempunyai lajur yang sama. Jika ya, anda boleh menggunakan tanda sama dalam klausa WHERE untuk memadankan dua jadual. Jika tidak, kita perlu menggunakan kenyataan JOIN dan ON.
Klausa Sertai mentakrifkan jadual yang akan digunakan, manakala klausa HIDUP mentakrifkan syarat untuk menyertai jadual. Dalam bahasa PHP, terdapat dua arahan yang boleh melaksanakan pertanyaan gabungan: mysqli_query dan PDO::query. Tidak kira arahan mana yang digunakan, kita mesti menyambung data dahulu.
Berikut ialah contoh pertanyaan gabungan SQL asas:
PILIH * DARI jadual1
SERTAI jadual2
PADA table1.col = table2.col
Pertanyaan ini mengembalikan baris yang sepadan antara Jadual 1 dan Jadual 2. Ini ialah contoh pertanyaan penyertaan sebaris yang mudah. Dalam contoh ini, kami hanya menanyakan bilangan baris yang sepadan antara dua jadual melalui parameter yang diluluskan.
Langkah 3: Gunakan PHP untuk melaksanakan pertanyaan sertai
Sangat mudah untuk melaksanakan pertanyaan gabungan dalam PHP. Kami hanya perlu mengikuti langkah berikut:
1 Sambung ke pangkalan data dan pilih jadual data untuk beroperasi
2 Tulis pernyataan pertanyaan gabungan SQL
3. Gunakan mysqli_query atau PDO ::query menjalankan operasi pertanyaan
4 Gunakan gelung while dan mysqli_fetch_array atau PDO::fetchAll untuk mendapatkan hasil
Berikut ialah contoh mudah menggunakan mysqli_query dan gelung while untuk. laksanakan pertanyaan sertai SQL:
$connect=mysqli_connect("localhost","username","password","dbname");
if (!$connect){
die("connection failed:".mysqli_connect_error());
}
$sql="SELECT *
DARI jadual1
SERTAI jadual2
PADA table1.col=table2 .col";
$result=mysqli_query($connect,$sql);
if(mysqli_num_rows($result)>0){
while($row=mysqli_fetch_array($result)){ echo $row['column_name']; }
} lain{
echo "No matching rows found.";
}
?>
Ringkasan
Di atas adalah pengenalan kepada cara menggunakan PHP untuk menanyakan dua jadual dalam pangkalan data yang sama. SQL join query ialah kaedah asas untuk menyoal data antara jadual data. Dengan menggunakan jenis gabungan yang sesuai, ia menjadi lebih mudah untuk menyertai data antara berbilang jadual data dan mendapatkan maklumat yang anda perlukan. Pada masa yang sama, ia juga sangat mudah untuk melaksanakan pertanyaan gabungan menggunakan bahasa PHP. Saya harap artikel ini dapat membantu pemula belajar dan menguasai kemahiran ini dengan lebih baik.
Atas ialah kandungan terperinci Bagaimana untuk menanyakan dua jadual dalam pangkalan data yang sama dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!