Pertanyaan SQL PHP untuk memisahkan berbilang lajur (dalam baris yang sama) ke dalam baris yang berasingan
P粉336536706
P粉336536706 2023-07-27 18:07:59
0
1
424
<p>Saya mempunyai jadual yang menyenaraikan keputusan ujian pelajar. Setiap baris mengandungi ID pelajar dan terdapat lajur, setiap lajur mewakili skor ujian individu. Sekarang saya perlu membuat pertanyaan yang membolehkan saya melihat baris berasingan untuk ID pelajar yang sepadan dengan setiap skor ujian. Saya telah mencari Stack Overflow untuk pendekatan terbaik, tetapi saya tidak menemui pendekatan yang kelihatan cekap. Saya menulis kod yang disenaraikan di bawah untuk seorang pelajar (1000002), tetapi nampaknya terlalu rumit untuk apa yang saya cuba capai dan hanya berfungsi untuk tiga markah ujian, jadi saya perlu menambah lebih banyak kod untuk mendapatkan Semua 16 mata. Adakah terdapat cara mudah untuk melakukan ini dengan satu pertanyaan (diutamakan) atau adakah saya perlu mengekstrak baris dan kemudian menggunakan gelung untuk membina tatasusunan daripada setiap elemen (pilihan kedua)? </p> <pre class="brush:php;toolbar:false;">SELECT scores_uid , skor1 DARI penilaian_skor WHERE fk_assigned_uid = '1000002' KESATUAN SEMUA PILIH scores_uid , markah2 DARI penilaian_skor WHERE fk_assigned_uid = '1000002' KESATUAN SEMUA PILIH scores_uid , skor3 DARI penilaian_skor WHERE fk_assigned_uid = '1000002';</pre> <p><br /></p>
P粉336536706
P粉336536706

membalas semua(1)
P粉908643611

Sebaik-baiknya, anda sepatutnya mempunyai struktur seperti ini:

students

  • id
  • name

tests

  • id
  • number

test_results

  • id
  • student_id
  • test_id
  • result

Dengan cara ini anda boleh mendapatkan semua keputusan untuk pelajar dalam satu pertanyaan.

SELECT test_results.result AS Result,
 students.name as Student,
 tests.number as Testnumber 
FROM test_results 
LEFT JOIN students ON students.id = test_results.student_id
LEFT JOIN tests ON tests.id = test_results.test_id
WHERE student_id = {{id}}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan