Page 1 sur 1

Vérifier qu'un enregistrement n'existe pas dans une table donnée

Posté : 26 oct. 2018, 06:07
par ricou89
Bonjour,

Je sèche et je lance donc un petit appel à l'aide. Voici mon sujet : je fais un site d'e-learning et je cherche à proposer à l'utilisateur de faire une leçon qu'il n'a pas encore faite ou pas encore terminée.

Dans une table `lessons_done`, j'ai les colonnes `user_id` et `done`

Ce que je souhaite faire, c'est récupérer les id des leçons dans un autre table `data_lessons`
OU lessons_done.done = '0' (0=pas encore terminé et 1=terminé)
OU AUSSI il n'y a pas d'enregistrement dans `lessons_done` avec user_id = xxx et lesson_id = yyy

Et c'est là que je sèche.

Voilà ce que j'ai tenté comme code mais je ne serais pas étonné d'avoir un souci de logique.

Code : Tout sélectionner

SELECT data_lessons.lesson_id, data_courses.category FROM data_courses INNER JOIN data_lessons ON data_courses.course_id = data_lessons.course_id INNER JOIN flw_lessons_done ON data_lessons.lesson_id = flw_lessons_done.lesson_id WHERE NOT EXISTS (SELECT * FROM flw_lessons_done WHERE flw_lessons_done.user_id = '1002')

Re: Vérifier qu'un enregistrement n'existe pas dans une table donnée

Posté : 31 oct. 2018, 12:58
par Saian

Code : Tout sélectionner

SELECT data_lessons.lesson_id, data_courses.category FROM data_courses INNER JOIN data_lessons ON data_courses.course_id = data_lessons.course_id WHERE data_lessons.lesson_id NOT IN ( SELECT flw_lessons_done.lesson_id FROM flw_lessons_done WHERE flw_lessons_done.user_id = '1002' )

Re: Vérifier qu'un enregistrement n'existe pas dans une table donnée

Posté : 31 oct. 2018, 15:33
par Patriboom
Ne serait-il pas plus simple de chercher la dernière leçon vue afin de proposer à l'usager la leçon suivante ?

Re: Vérifier qu'un enregistrement n'existe pas dans une table donnée

Posté : 05 nov. 2018, 07:03
par ricou89
Merci @Saian, je vais essayer ça.

@Patriboom. J'ai en fait besoin de récupérer de nombreuses leçons non faites afin de déterminer laquelle je dois propose ensuite, en fonction de sa catégorie et en fonction du profil de l'utilisateur.

Re: Vérifier qu'un enregistrement n'existe pas dans une table donnée

Posté : 05 nov. 2018, 07:11
par Patriboom
Alors, la solution de Saian est aussi ce que j'aurais proposé, une recheche par NOT IN (leçons faites)

Re: Vérifier qu'un enregistrement n'existe pas dans une table donnée

Posté : 05 nov. 2018, 07:14
par ricou89
Cool, merci