Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Outils
Outils Forum d'entraide sur les outils pour MySQL. Avant de poster -> Outils MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/05/2007, 05h58   #1
Invité de passage
 
Inscription : octobre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 7
Points : 1
Points : 1
Par défaut Query IS NOT

Bonjour à tous,

je me pose une serieuse question et n'arrive plus à y voir clair.

Voici le petit schema :

Table usager :

idusager, nom, prenom, motdepasse, groupe

Table selection_de_Jeux_usager :

idselectiondejeuxusager, id_usager,id_nom_officiel_jeux, notes

Table nom_officiel_jeux

idtablenomofficieljeux, nom_officiel_jeux, information_jeux, commentaire_jeux

Ceci n'est qu'un exemple alors bien sur je sais que les nom de champs ne sont pas standarisé alors, mon problème :

J'essay de faire afficher les jeux que l'utilisateur N'A PAS dans sa collection.

Donc du genre :

Selectionner idtablenomofficieljeux et nom_officiel_jeux pour qui idtablenomofficieljeux ne fait pas parti de id_nom_officiel_jeux.

Quelqu'un à une petite idée comment s'y prendre ?

Merci !
jobouga est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 06h10   #2
Membre expérimenté
 
Étudiant
Inscription : juillet 2004
Messages : 777
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2004
Messages : 777
Points : 527
Points : 527
Eu ca serai plutot:
Code :
1
2
 
SELECT * FROM usager WHERE NOT EXISTS ( SELECT '+' FROM selection_de_Jeux_usager WHERE idusager=id_usager)
Traduit en francais ca donne, selectionner tous les champs d'usager, pour lequel il n'existe pas l'id usager dans la table jeux usager.

Parce que ca:
Citation:
Selectionner idtablenomofficieljeux et nom_officiel_jeux pour qui idtablenomofficieljeux ne fait pas parti de id_nom_officiel_jeux
Ca ne traduit pas ce que tu veut:
Citation:
J'essay de faire afficher les jeux que l'utilisateur N'A PAS dans sa collection.
Mais ce que j'ai donnée plus haut oui
cerede2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 06h18   #3
Invité de passage
 
Inscription : octobre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 7
Points : 1
Points : 1
Citation:
Envoyé par cerede2000
Eu ca serai plutot:
Code :
1
2
 
SELECT * FROM usager WHERE NOT EXIST ( SELECT '+' FROM selection_de_Jeux_usager WHERE idusager=id_usager)
Traduit en francais ca donne, selectionner tous les champs d'usager, pour lequel il n'existe pas l'id usager dans la table jeux usager.

Parce que ca:

Ca ne traduit pas ce que tu veut:

Mais ce que j'ai donnée plus haut oui
Je me suis p-e mal exprimé :

Table usager :

idusager, nom, prenom, motdepasse, groupe

Table selection_de_Jeux_appartenant_a_usager :

idselectiondejeuxusager, id_usager,id_nom_officiel_jeux, notes

Table nom_officiel_jeux

idtablenomofficieljeux, nom_officiel_jeux, information_jeux, commentaire_jeux

Donc je ne cherche pas les éléments de la table usager, je cherche a avoir les deux champ idtablenomofficieljeux, nom_officiel_jeux, qui ne font pas parti de selection_de_Jeux_appartenant_a_usager. bien sur une deuxieme AND sera du type selection_de_Jeux_appartenant_a_usager.id_usager = "$usagerconcerné"

Possible ?
jobouga est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 07h14   #4
Membre régulier
 
Avatar de KINENVEU
 
Inscription : mai 2007
Messages : 174
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 174
Points : 87
Points : 87
je ne suis pas specialiste, mais essaie peut etre ca :

SELECT idtablenomofficieljeux, nom_officiel_jeux FROM nom_officiel_jeux WHERE idtablenomofficieljeux NOT IN (SELECT id_nom_officiel_jeux FROM selection_de_Jeux_usager )

de mon point de vue ca peut marcher a condition que :
idtablenomofficieljeux et id_nom_officiel_jeux soit bien les memes identifiants de jeu.

si ce n'est pas le cas, je ne vois pas comment relier un jeu "utilisateur" et un jeu "en general".

voila, encore une fois je n'en suis pas sur du tout,
mais avec un peu de chance ca marche.

Bonne chance a toi.
KINENVEU est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 10h06   #5
Membre expérimenté
 
Étudiant
Inscription : juillet 2004
Messages : 777
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2004
Messages : 777
Points : 527
Points : 527
Ah j'avais mal comprit alors...
Donc oui deja c'est sur qu'il faut que idtablenomofficieljeux = id_nom_officiel_jeux et ensuite donc la requete est la suivante (Moi je prefere le NOT EXISTS )
Code :
1
2
 
SELECT idtablenomofficieljeux, nom_officiel_jeux FROM nom_officiel_jeux WHERE NOT EXISTS (SELECT '+' FROM selection_de_Jeux_appartenant_a_usager WHERE idtablenomofficieljeux = id_nom_officiel_jeux)
cerede2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 18h33   #6
Invité de passage
 
Inscription : octobre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 7
Points : 1
Points : 1
Citation:
Envoyé par cerede2000
Ah j'avais mal comprit alors...
Donc oui deja c'est sur qu'il faut que idtablenomofficieljeux = id_nom_officiel_jeux et ensuite donc la requete est la suivante (Moi je prefere le NOT EXISTS )
Code :
1
2
 
SELECT idtablenomofficieljeux, nom_officiel_jeux FROM nom_officiel_jeux WHERE NOT EXISTS (SELECT '+' FROM selection_de_Jeux_appartenant_a_usager WHERE idtablenomofficieljeux = id_nom_officiel_jeux)

Il n'y a aucun alias rien de cela, car j'ai pas le resultat escompté du tout, se serait la version final ca, le '+' signifie quoi ? et ou puijes placé l'id usager pour s'occuper seuleument de ceux que LUI n'a pas ?

Merci beaucoup !
jobouga est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 22h12   #7
Invité de passage
 
Inscription : octobre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 7
Points : 1
Points : 1
Par défaut Version plus clair j'ose espéré :)

Table : User
Champ : idUser, nom, prenom, surnom


Table : JeuxSystem (ce qui veux dir liste de jeux inclus dans le system, les gens ne peuvent qu'ajouté des jeux listés dans le system)
Champ : idJeuxSystem, nomdujeux, detailsdujeux

Table : JeuxUser
Champ : idJeuxUser, idUser, LienIdJeuxSystem

Ce que je désire faire est ceci :

J'ai une liste de choix permettant d'ajouter des jeux, par contre dans cette liste, les jeux ayant déjà été ajouté au user, je voudrais pas qu'il aparaisse dans cette liste.


Ma box list a remplir doit l'etre donc avec : idJeuxSystem & nomdujeux (idJeuxSystem pour la future écriture & nomdujeux pour etre lisible dans la liste de choix)

Donc en terme sql je cherche a reproduire :

Selectionner JeuxSystem.idJeuxSystem, JeuxSystem.nomdujeux WHERE JeuxSystem.idJeuxSystem N'égale ou ne se retrouve pas dans JeuxUser.LienIdJeuxSystem AND JeuxUser.idUser = '2'


Bien sur le deux sera remplacé par la bonne variable par la suite.

Quelqu'un reussi a y voir clair ?
jobouga est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h49.


 
 
 
 
Partenaires

Hébergement Web