Requête PHP SQL pour séparer plusieurs colonnes (dans la même ligne) en lignes distinctes
P粉336536706
2023-07-27 18:07:59
<p>J'ai un tableau qui répertorie les résultats des tests des étudiants. Chaque ligne contient un identifiant d'étudiant et il y a des colonnes, chaque colonne représentant un résultat de test individuel. Je dois maintenant créer une requête qui me permettra de voir une ligne distincte pour le numéro d'étudiant correspondant à chaque résultat de test. J'ai recherché Stack Overflow pour trouver la meilleure approche, mais je n'en ai pas trouvé une qui semble efficace. J'ai écrit le code ci-dessous pour un étudiant (1 000 002), mais il semble trop complexe pour ce que j'essaie de réaliser et ne fonctionne que pour trois résultats de tests. Je dois donc ajouter plus de code pour obtenir les 16 points. Existe-t-il un moyen simple de le faire avec une seule requête (de préférence) ou dois-je extraire les lignes, puis utiliser une boucle pour créer un tableau à partir de chaque élément (de préférence) ? </p>
<pre class="brush:php;toolbar:false;">SELECT
scores_uid
, score1
DEPUIS
Assessment_scores OÙ fk_assigned_uid = '1000002'
UNION TOUS
SÉLECTIONNER
scores_uid
, score2
DEPUIS
Assessment_scores OÙ fk_assigned_uid = '1000002'
UNION TOUS
SÉLECTIONNER
scores_uid
, score3
DEPUIS
Assessment_scores OÙ fk_assigned_uid = '1000002';</pre>
<p><br /></p>
Idéalement, vous devriez avoir une structure comme celle-ci :
students
id
name
tests
id
number
test_results
id
student_id
test_id
result
De cette façon, vous pouvez obtenir tous les résultats des étudiants en une seule requête.