Considérons 3 tables users, users_x_objets et objets dans une relation many-to-many.
La table users défini les utilisateurs (PRIMARY user_id)
La table objets défini différents objets (PRIMARY objet_id UNIQUE objet_nom)
La table users_x_objets permet d'établir un rapport de possession entre les objets et les utilisateurs (PRIMARY user_id, objet_id)
J'essaye d'établir une requete ou je voudrais sélectionner les utilisateurs qui ont un chapeau et des gants mais pas de valise, pour le moment j'arrive à ça mais sans succès :
Si vous pouvez m'éclairer sur ce qui ne colle pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT u.* FROM users u INNER JOIN users_x_objets x ON u.user_id=x.user_id INNER JOIN objets o ON x.objet_id=o.objet_id INNER JOIN objets m ON x.objet_id=m.objet_id WHERE o.objet_nom IN ('chapeau', 'gants') AND m.objet_nom NOT IN ('valise') GROUP BY u.user_id HAVING COUNT(u.user_id)=2
Merci
Partager