J'ai deux tables
cours_VAILABLE: P>
cours_enrolled p>
Je veux écrire une requête pour me procurer des archives dans lesquelles une personne prend un cours dans une langue qu'elle n'est pas offerte dans l'exemple ci-dessus, la PersonC est en cours de cours A en français mais sa seule proposée En anglais et espagnol. p> La requête ci-dessus me donne également le cours un aussi bien. Quel genre de jointure ne me donnera que c? p> p>
5 Réponses :
J'espère que ça vous aide. Il suffit d'utiliser "<>" au lieu de! =
Exemple: p>
ou même sauf 'où cours_enrolled.course est null`
Pas besoin d'utiliser '! =' Vous pouvez ajouter un autre vous pouvez voir dans sqlfiddle p> p> sur code> condition
Utilisez la jointure gauche avec condition B.Langage est null code>
Utilisation n'existe pas
Vous ne pouvez pas faire cela en rejoignant où la langue ne correspond pas, vous souhaitez rejoindre où il correspond à la correspondance mais que vous sélectionnez uniquement des lignes où, avec une jointure à gauche, aucun cours_SPARIABLE n'est trouvé:
select p.name, p.course, p.language from courses_enrolled p left join courses_available c on p.course=c.course and p.language = c.language where c.course is null
Sélectionnez P.Name, P.Course, P.Language de Courses_Rolled P Où (P.Course, P.Language) Non dans (Sélectionnez C.Course, C.Language de Course_Available C) Code>Rien. Il n'y a pas de cours c