PHP-SQL-Abfrage zum Aufteilen mehrerer Spalten (in derselben Zeile) in separate Zeilen
P粉336536706
P粉336536706 2023-07-27 18:07:59
0
1
331

Ich habe eine Tabelle, in der die Testergebnisse der Schüler aufgeführt sind. Jede Zeile enthält eine Studenten-ID und es gibt Spalten, wobei jede Spalte ein individuelles Testergebnis darstellt. Jetzt muss ich eine Abfrage erstellen, die es mir ermöglicht, eine separate Zeile für den Studentenausweis zu sehen, der jedem Testergebnis entspricht. Ich habe Stack Overflow nach dem besten Ansatz durchsucht, aber keinen gefunden, der effizient aussieht. Ich habe den unten aufgeführten Code für einen Schüler (1000002) geschrieben, aber er scheint für das, was ich erreichen möchte, zu komplex zu sein und funktioniert nur für drei Testergebnisse, sodass ich mehr Code hinzufügen muss, um alle 16 Punkte zu erhalten. Gibt es eine einfache Möglichkeit, dies mit einer einzelnen Abfrage zu tun (bevorzugt) oder muss ich die Zeilen extrahieren und dann eine Schleife verwenden, um aus jedem Element ein Array zu erstellen (zweite bevorzugt)?

SELECT scores_uid , Punktzahl1 AUS Assessment_scores WHERE fk_assigned_uid = '1000002' UNION ALLE WÄHLEN scores_uid , Punktzahl2 AUS Assessment_scores WHERE fk_assigned_uid = '1000002' UNION ALLE WÄHLEN scores_uid , Punktzahl3 AUS Assessment_scores WHERE fk_assigned_uid = '1000002';


P粉336536706
P粉336536706

Antworte allen (1)
P粉908643611

理想情况下,你应该有类似这样的结构:

students

  • id
  • name

tests

  • id
  • number

test_results

  • id
  • student_id
  • test_id
  • result

这样你就可以在一个查询中获取学生的所有结果。

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}}
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!