J'ai un problème de recherche plusieurs tables , j'ai 2 tablesComment recherchez-vous les jointures Right/Left?
tblcourse
-courseid
-nom
-status
tblenroll
-courseid (détient coursid de tblcourse)
-studentid
permet de dire un étudiant a 1990 num étudiant et il a enregistré 2 cours de tblenrol
Je veux obtenir le nom des cours que l'année 1990 a et ceux qu'il aint abonnée
le plus proche que je reçois est une jointure externe droite à tblcourses puis j'obtiens le résultat que je veux, mais une fois que j'attache une clause where il ne me donnera pas le reste des cours qui n'ont pas son numéro d'étudiant.
Toute aide !!
EDIT (ajouté de réponse publié par op)
Hey, merci pour la réponse. Ok je ne pense pas que je l'ai expliqué correctement.
tblcourse tiendra de nombreux cours tblenroll tient beaucoup inscriptions
Alors, imaginez que nous avons 6 cours. registres étudiants 1990 pour 3 et étudiant 1880 pour 1 (un que l'année 1990 n'a pas choisi)
Quand nous courons ceci:
WHERE (tblenroll.studentid = 1990 or tblenroll.studentid is null)
ou
where e.studentid is null or e.studentid is not null and e.studentid = 1990
il ramassera 5 cours, 3 enregistrés en 1990 et 2 NULLS. Le sixième est inscrit à 1880.
Cette requête apporte les bons résultats, mais pas pour un étudiant spécifique
SELECT
tblenroll.studentid as stud,
tblcourse.name,
tblenroll.studentid,
tblenroll.courseid,
tblcourse.courseid,
FROM
tblenroll
Right Join tblcourse ON tblenroll.courseid = tblcourse.courseid
Avec ce qui précède, je vais me
1880-1 1990-3 NULL - 2
des choses qui déroutent!
peut vous envoyer votre sql? – andrewWinn