cari

Rumah  >  Soal Jawab  >  teks badan

Pertanyaan SQL PHP untuk memisahkan berbilang lajur (dalam baris yang sama) ke dalam baris yang berasingan

<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粉336536706P粉336536706562 hari yang lalu431

membalas semua(1)saya akan balas

  • P粉908643611

    P粉9086436112023-07-28 17:42:24

    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}}

    balas
    0
  • Batalbalas