J'essaie d'écrire une requête pour savoir quels utilisateurs ne sont pas inscrits sur certains cours.trouver des valeurs manquantes dans MySQL
J'ai 2 tables; cours et utilisateurs. Les deux contiennent les champs 'id' puis 'coursename' et 'nom d'utilisateur' respectivement.
En utilisant ces deux tables, le système existant ajoute les utilisateurs à une troisième table (appelée inscrits_utilisateurs). Les utilisateurs prennent une ligne pour chacun. Par exemple, si l'ID utilisateur « 1 » est sur 4 parcours les enrolled_users ressemble à ceci:
-----------------------
| user_id | course_id |
-----------------------
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
-----------------------
Comme vous pouvez le voir ces données de table ne repose pas sur une relation, il est généré en PHP en utilisant les cours de deux tables 'et' utilisateurs '. Je ne sais pas comment écrire une requête sur la façon de savoir que l'utilisateur des cours '1' n'est pas inscrit, s'il y a 10 cours, mais que l'utilisateur '1' est seulement sur les cours 1- 4. Est-ce que je suppose que j'utilise quelque chose comme un LIKE ou un NOT LIKE?
SELECT u.id, c.id, ec.user_id, ec.course_id
FROM users u, courses c, enrolled_courses ec
WHERE u.id = ec.user_id
AND c.id = ec.course_id
AND u.id = '1'
J'ai essayé d'utiliser = et <> mais cela ne montre pas ce que je dois!; une liste de cours sur lesquels l'utilisateur n'est pas inscrit. Désolé si je suis vague, essayant d'obtenir ma tête autour de lui!
En utilisant MySQL 5.0, sur un système existant, je ne peux pas modifier, seulement demander (pour le moment).
l'idée est de ne pas se joindre à gauche et ajouter où course.id IS NULL –