J'essaie de comparer les données à partir de deux tables différentes, en renvoyant toutes les données de la première table, puis sélectionnez les données disponibles dans la deuxième table si elle a.
Mon objectif principal est de vérifier si l'étudiant a été inscrit à un cours , si oui, je montrerai quelque chose à indiquer. Ci-dessous est ma structure de table et tente que j'ai faite. P>
cours em> p> étudiant_courses our> p> / tentative de requête SQL em> / p> / interrogation de résultat attendu One em> / p> / requête de résultat attendu Deux em> / p>
3 Réponses :
Vous pouvez y parvenir avec une seule requête.
SELECT course_code, CASE WHEN course_codes != '' THEN 'ENROLLED' ELSE '' END AS STS FROM courses LEFT JOIN student_courses ON (student_courses.course_codes = courses.course_code);
Comment utiliser l'endroit où vérifier la clause pour vérifier l'étudiant individuel? Quand j'ajoute où étudiant_courses.student_id = 'peter123' code> il ne renvoie que 3 articles
Vous pouvez utiliser
VUE Enrolled OBJECTIVE C Java PHP HTML PYTHON SWIFT Enrolled SQL Enrolled HACKZA
J'ai essayé votre exemple et cela a fonctionné, mais comment puis-je obtenir la valeur de inscrit code> dans mon code PHP?
Cela dépend de ce que vous utilisez MySQLI ou PDO. Regardez ici, c'est Simpole à Adept Stackoverflow.com/Questtions/11575432/...
Vous devez déplacer la condition de l'endroit où la clause ON: i joint cs.course_name code> au lieu de
cs.course_code Code> Pour faire ce travail, mais je pense que dans les données d'échantillons que vous avez postés, les 2 colonnes sont par erreur attribuées à ces données. Si tel est le cas, changez sur
sur cs.course_code = SCS.Course_codes Code>
Voir le Démo .
Résultats: P> | course_name | ischeck |
| ----------- | -------- |
| VUE | ENROLLED |
| SWIFT | ENROLLED |
| SQL | ENROLLED |
| OBJECTIVE C | |
| Java | |
| PHP | |
| HTML | |
| PYTHON | |
| HACKZA | |
J'ai essayé votre réponse et cela fonctionne, mais j'ai le problème de le saisir de mon code, est-il possible d'assigner ischeck comme "inscrit" code> afin que je puisse vérifier
si ($ ligne-> ischeck == "inscrit") code>?
Lorsque je imprime l'objet retourné, j'ai quelque chose comme ce tableau (objet) ('"Courses_name' => 'Langue anglaise', 'Courses_code' =>" Eng101 "," Case quand scs.student_id n'est pas null alors \ \ 'Inscrit \' End '=>' Inscrit ',) CODE> Je ne comprends pas vraiment comment accéder à ma php
J'ai ajouté l'alias ischeck code> dans la requête.
Changer où et