-1
votes

Joindre entre deux tables avec! = condition

J'ai deux tables

  1. cours_VAILABLE: XXX

  2. cours_enrolled XXX

    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. xxx

    La requête ci-dessus me donne également le cours un aussi bien. Quel genre de jointure ne me donnera que c?


2 commentaires

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)


Rien. Il n'y a pas de cours c


5 Réponses :


0
votes

J'espère que ça vous aide. Il suffit d'utiliser "<>" au lieu de! =

Exemple: xxx


1 commentaires

ou même sauf 'où cours_enrolled.course est null`



0
votes

Pas besoin d'utiliser '! =' Vous pouvez ajouter un autre sur condition xxx

vous pouvez voir dans sqlfiddle


0 commentaires

0
votes

Utilisez la jointure gauche avec condition B.Langage est null xxx


0 commentaires

0
votes

Utilisation n'existe pas xxx


0 commentaires

0
votes

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


0 commentaires