Rumah > Artikel > pangkalan data > Bagaimana untuk Mengambil Berbilang Rekod dan Data Berkaitannya dalam Satu Pertanyaan MySQL?
Mengembalikan Berbilang Data Respons dalam Satu Respons
Dalam kod PHP anda, anda mempunyai pertanyaan yang mengambil berbilang baris data daripada jadual pangkalan data . Walau bagaimanapun, anda mendapat berbilang respons dan anda ingin menggabungkannya menjadi satu respons dengan berbilang rekod.
Untuk mencapai ini, anda perlu mengubah suai pertanyaan anda untuk melakukan gabungan kiri pada jadual yang diperlukan. Daripada mengambil data pelajar, anda akan mengambil data subjek dan memasukkan maklumat pelajar yang berkaitan menggunakan gabungan kiri. Ini akan membolehkan anda memasukkan data berkaitan daripada berbilang jadual dalam satu respons.
Berikut ialah contoh pertanyaan yang dikemas kini:
<code class="php">$sql = 'SELECT subjects.userid, users.name AS username, ( SELECT id FROM tbsubjects WHERE userid = subjects.userid ORDER BY id ASC LIMIT 1 ) AS subjectsid, ( SELECT name FROM tbsubjects WHERE userid = subjects.userid ORDER BY time DESC LIMIT 1 ) AS subjectname, ( SELECT IFNULL(SUM(points), 0) FROM tbsubjects WHERE userid = subjects.userid AND month = DATE_FORMAT(NOW(), "%c") ) AS activepts, IFNULL(SUM(subjects.points), 0) AS totalpts, ( SELECT IFNULL(SUM(points), 0) FROM tbsubjects WHERE userid = subjects.userid AND semester = 1 ) AS sem1, ( SELECT IFNULL(SUM(points), 0) FROM tbsubjects WHERE userid = subjects.userid AND semester = 2 ) AS sem2, ( SELECT IFNULL(SUM(points), 0) FROM tbsubjects WHERE userid = subjects.userid AND semester = 3 ) AS sem3 FROM tbsubjects AS subjects LEFT JOIN tbusers AS users ON users.id = subjects.userid WHERE subjects.userid = :userid GROUP BY subjects.userid ORDER BY subjects.time DESC';</code>
Dalam pertanyaan ini:
Selepas melaksanakan pertanyaan ini, anda akan mendapat satu respons yang mengandungi berbilang rekod subjek , setiap satu dengan maklumat pelajar yang diperlukan dan nilai yang dikira.
Atas ialah kandungan terperinci Bagaimana untuk Mengambil Berbilang Rekod dan Data Berkaitannya dalam Satu Pertanyaan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!