Pertanyaan Sertai Dalaman MySQL untuk Memautkan Berbilang Jadual
Apabila bekerja dengan pangkalan data hubungan seperti MySQL, selalunya perlu mengambil data daripada berbilang jadual berdasarkan kriteria tertentu. Cantuman dalaman ialah alat berkuasa yang membolehkan anda mewujudkan hubungan antara jadual dan hasil penapisan mengikut nilai yang sepadan.
Dalam kes ini, objektifnya ialah untuk menyertai empat jadual: "pesanan," "harga_produk," "produk ," dan "penyenaraian." Matlamatnya ialah untuk mendapatkan semula semua produk yang dikaitkan dengan pengguna tertentu dan URL sepadan mereka daripada jadual "penyenaraian".
Pertanyaan SQL yang disediakan cuba melakukan gabungan tetapi gagal menapis keputusan dengan betul, membawa kepada kemasukan data yang tidak diingini. Untuk menangani isu ini, pertanyaan SQL yang dioptimumkan berikut boleh digunakan:
SELECT p.id, p.name, l.url, o.user_id, o.pricing_id FROM orders AS o INNER JOIN products_pricing AS pp ON o.pricing_id = pp.id INNER JOIN products AS p ON pp.product_id = p.id INNER JOIN listings AS l ON l.user_id = o.user_id WHERE o.user_id ='7' AND l.id = 233 AND l.url = 'test.com';
Dengan menambahkan kriteria penapisan tambahan pada klausa WHERE, pertanyaan yang diubah suai ini memastikan bahawa hanya baris digabungkan dengan ID pengguna ialah '7' , ID penyenaraian ialah '233' dan URL ialah 'test.com'.
Pertanyaan ini menghasilkan output yang diingini, termasuk produk ID, nama produk, URL untuk produk, ID pengguna dan ID harga. Ini membolehkan set hasil yang lebih halus yang menggambarkan dengan tepat perhubungan data yang dimaksudkan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Data Produk dengan Cekap daripada Berbilang Jadual MySQL Menggunakan Inner Joins?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!