Rumah > Artikel > pembangunan bahagian belakang > Kemahiran pertanyaan berkaitan pelbagai jadual dalam PHP
Kemahiran pertanyaan berkaitan berbilang jadual dalam PHP
Pertanyaan berkaitan ialah bahagian penting dalam pertanyaan pangkalan data, terutamanya apabila anda perlu memaparkan data dalam berbilang jadual pangkalan data berkaitan. Dalam aplikasi PHP, pertanyaan berkaitan berbilang jadual sering digunakan apabila menggunakan pangkalan data seperti MySQL. Maksud perkaitan berbilang jadual ialah membandingkan data dalam satu jadual dengan data dalam jadual lain atau berbilang, dan menyambungkan baris tersebut yang memenuhi keperluan dalam hasilnya.
Apabila melakukan pertanyaan perkaitan berbilang jadual, anda perlu mempertimbangkan perhubungan antara jadual dan menggunakan kaedah perkaitan yang sesuai. Berikut memperkenalkan beberapa teknik untuk pertanyaan berkaitan berbilang jadual dan cara menggunakannya dalam PHP.
Caburan dalam ialah kaedah perkaitan berbilang jadual yang paling biasa digunakan. Ia sepadan dengan rekod dalam dua atau lebih jadual dan hanya mengembalikan yang sepadan. Dalam MySQL, sintaks gabungan dalaman adalah seperti berikut:
PILIH nama_lajur
DARI jadual1
SERTAI DALAMAN table2
ON table1.column_name = table2.column_name;
Contohnya, jika anda perlu memaparkan senarai pesanan pelanggan dan perlu melihat butiran pelanggan, anda boleh menggunakan pertanyaan SQL berikut:
PILIH pelanggan.ID Pelanggan, pelanggan.Nama Pelanggan, pesanan.TarikhPesan
DARI pelanggan
pesanan INNER JOIN
ON customers.CustomerID = orders.CustomerID;
Dalam PHP, pernyataan pertanyaan ini boleh dilaksanakan menggunakan kaedah query() bagi fungsi mysqli.
Cambahan kiri ialah kaedah perkaitan berbilang jadual biasa, yang mengembalikan semua baris jadual kiri dan baris dalam jadual kanan yang berkaitan dengan jadual kiri . Jika tiada baris yang sepadan dalam jadual kiri, lajur dalam jadual kanan akan menjadi NULL. Dalam MySQL, sintaks gabungan kiri adalah seperti berikut:
PILIH column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
Contohnya, jika anda perlu memaparkan pelanggan yang tidak mempunyai pesanan dalam senarai pelanggan dan anda perlu menggunakan pertanyaan SQL berikut:
PILIH pelanggan.Nama Pelanggan, pesanan.ID Pesanan
DARI pelanggan
LEFT JOIN order
ON customers.CustomerID = orders.CustomerID
ORDER BY customers.CustomerName;
Dalam PHP, pernyataan pertanyaan ini boleh dilaksanakan menggunakan kaedah query() bagi fungsi mysqli.
Sambung kanan ialah operasi songsang sambung kiri, yang mengembalikan semua baris jadual kanan dan baris dalam jadual kiri yang berkaitan dengan jadual kanan. Jika tiada baris yang sepadan dalam jadual kanan, lajur dalam jadual kiri akan menjadi NULL. Dalam MySQL, sintaks gabungan kanan adalah seperti berikut:
PILIH column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
Contohnya, jika anda perlu memaparkan senarai pesanan dan nama pelanggan pesanan itu, dan perlu memasukkan pesanan tersebut tanpa pelanggan, anda boleh menggunakan pertanyaan SQL berikut:
PILIH pesanan.OrderID, pelanggan.CustomerName
DARI pesanan
KANAN SERTAI pelanggan
PADA pesanan.CustomerID = pelanggan.CustomerID
ORDER BY orders.OrderID;
Dalam PHP, pernyataan pertanyaan ini boleh dilaksanakan menggunakan kaedah query() bagi fungsi mysqli .
Sertai penuh sepadan dengan semua baris dalam jadual kiri dan jadual kanan serta mengembalikan semua keputusan. Jika tiada baris yang sepadan dalam dua jadual, padding NULL digunakan. Dalam MySQL, sintaks gabungan penuh adalah seperti berikut:
PILIH column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;
MySQL tidak menyediakan FULL OUTER JOIN, tetapi anda boleh menggabungkan gabungan kiri dan kanan untuk mensimulasikan operasi FULL OUTER JOIN.
Dalam PHP, sambungan penuh boleh dicapai menggunakan kaedah query() bagi fungsi mysqli.
Sertai sendiri menggabungkan dua medan berbeza dalam jadual yang sama dan mencipta jadual alias untuk dipautkan Kuncinya adalah untuk menentukan output yang berbeza apabila menggunakan Cara keluaran. Dalam MySQL, sintaks join sendiri adalah seperti berikut:
PILIH table1.column1, table2.column2...
FROM table1, table2
WHERE table1.column = table2.column;
Sebagai contoh, jika anda ingin mencari pekerja yang mempunyai gaji yang lebih tinggi daripada yang lain, anda boleh menggunakan pertanyaan SQL berikut:
PILIH a.employeeName
DARI pekerja a, pekerja b
WHERE a.employeeSalary > b.employeeSalary
DAN b.employeeName = 'Jane';
Dalam PHP, pernyataan pertanyaan ini boleh dilaksanakan menggunakan kaedah query() fungsi mysqli.
Ringkasan
Pertanyaan perkaitan berbilang jadual sangat biasa dalam aplikasi PHP dan MySQL Artikel ini menyediakan lima teknik perkaitan berbilang jadual, termasuk cantuman dalam, sambung kiri, sambung kanan, Bersambung sepenuhnya dan bersambung sendiri. Gunakan teknik ini untuk membuat pertanyaan dan memaparkan data dengan lebih baik dalam berbilang jadual pangkalan data yang berkaitan.
Atas ialah kandungan terperinci Kemahiran pertanyaan berkaitan pelbagai jadual dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!