Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Data daripada Dua Jadual MySQL dengan Koresponden yang Hilang?
Memilih daripada Dua Jadual dalam MySQL dengan Koresponden Hilang
Untuk mendapatkan semula data daripada dua jadual dalam MySQL dan mengendalikan kes di mana tidak semua baris dalam satu jadual mempunyai baris yang sepadan dalam satu lagi, anda boleh menggunakan gabungan luar. Pendekatan ini berbeza daripada kaedah gabungan tersirat yang lapuk dan menawarkan fleksibiliti yang lebih besar.
Pertimbangkan contoh berikut:
Anda mempunyai dua jadual, kategori (dengan id lajur dan tajuk) dan produk (dengan id lajur , pemilik, tajuk dan harga, di mana id rujukan pemilik dalam kategori jadual).
Pertanyaan anda bertujuan untuk mendapatkan semula semua kategori dan harga minimum dan maksimumnya, dikumpulkan mengikut ID kategori. Walau bagaimanapun, pertanyaan semasa mengecualikan kategori tanpa produk yang sepadan.
Untuk menyelesaikan isu ini, gunakan LEFT JOIN:
SELECT sc.*, IFNULL(MIN(s.price), 0) AS minp, IFNULL(MAX(s.price), 0) AS maxp FROM categories AS sc LEFT JOIN products AS s ON s.ownerid = sc.id GROUP BY sc.id
LEFT JOIN memastikan semua baris daripada jadual kategori disertakan, walaupun tiada baris yang sepadan dalam jadual produk. Fungsi IFNULL menetapkan 0 kepada minp dan maxp untuk kategori tanpa produk, menghalang nilai NULL daripada dipaparkan.
Sebagai alternatif, anda mungkin memilih untuk mengembalikan NULL untuk kategori ini dan bukannya 0, bergantung pada keperluan khusus anda.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Data daripada Dua Jadual MySQL dengan Koresponden yang Hilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!