Aide solution requete ... pas trop compliqué mais bon ... ;-) - SQL/NoSQL - Programmation
Marsh Posté le 02-04-2005 à 21:26:47
select * from utilisateur where id_utilisateur not in (select id_utilisateur from UTILISATEURS_GROUPES_ASSOCIATIONS.ID_GROUPE)
Marsh Posté le 02-04-2005 à 21:27:21
(j'ai pas repris tes noms de champs dans la requète mais l'important est le where ... not in.
Marsh Posté le 02-04-2005 à 21:41:48
j'ai fait ca mais ca n'a pas l'air de fonctionner :
SELECT UTILISATEURS.ID, UTILISATEURS.NOM, UTILISATEURS.PRENOM
FROM UTILISATEURS
WHERE UTILISATEURS.ID NOT IN
(SELECT UTILISATEURS.*, UTILISATEURS_GROUPES_ASSOCIATIONS.ID_GROUPE FROM UTILISATEURS, UTILISATEURS_GROUPES_ASSOCIATIONS WHERE UTILISATEURS.ID = UTILISATEURS_GROUPES_ASSOCIATIONS.ID_UTILISATEUR)
Est-ce que j'ai bien compris la démarche ?
Marsh Posté le 02-04-2005 à 21:43:25
Il me dit :
"Vous avez écrit une sous-requête pouvant renvoyer plus d'un champ sans utiliser le mot réservé EXISTS dans la clause FROM de la requête principale. Révisez l'instruction SELECT de la sous-requête pour obtenir un seul champ."
Marsh Posté le 02-04-2005 à 22:04:07
ca y est, j'ai réussi à appliquer ta requete :
SELECT *
FROM UTILISATEURS
where ID
NOT IN (SELECT ID_UTILISATEUR FROM UTILISATEURS_GROUPES_ASSOCIATIONS)
merci pour ton aide !
Marsh Posté le 02-04-2005 à 20:34:54
Bonjour,
j'ai 2 table : UTILISATEURS, UTILISATEURS_GROUPES_ASSOCIATIONS
Mon premier problème ( que j'ai résolu ) était de trouver tous les utilisateurs ayant un son ID présent dans la table d'association "UTILISATEURS_GROUPES_ASSOCIATIONS". Cela me donne tous les utilisateurs faisant parti d'un groupe -> J'ai donc effectué cette requete qui fonctionne parfaitement :
SELECT UTILISATEURS.*, UTILISATEURS_GROUPES_ASSOCIATIONS.ID_GROUPE
FROM UTILISATEURS, UTILISATEURS_GROUPES_ASSOCIATIONS
WHERE UTILISATEURS.ID = UTILISATEURS_GROUPES_ASSOCIATIONS.ID_UTILISATEUR
ORDER BY UTILISATEURS.NOM, UTILISATEURS.PRENOM
Cependant, dans la table UTILISATEURS, j'ai des utilisateurs dont l'ID ne figure pas dans la table d'association UTILISATEURS_GROUPES_ASSOCIATIONS et je souhaiterais les recuperer. Pour cela, je pensais faire :
SELECT UTILISATEURS.*, UTILISATEURS_GROUPES_ASSOCIATIONS.ID_GROUPE
FROM UTILISATEURS, UTILISATEURS_GROUPES_ASSOCIATIONS
WHERE UTILISATEURS.ID <> UTILISATEURS_GROUPES_ASSOCIATIONS.ID_UTILISATEUR
ORDER BY UTILISATEURS.NOM, UTILISATEURS.PRENOM
Et là, ca ne marche pas et je comprends pas pourquoi !!!! Non seulement, ca me sort pas les bons users, mais en plus ca me sort des doublons. En réfléchissant bien, ca me parait un peu logique le résultat mais je sais pas comment le tourner pour arriver à mes fins.
Quelqu'un n'aurait-il pas la solution parce que ca me parait bete comme choux mais je vois pas !
Je vous remercie par avance de votre réponse.