IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils MySQL Discussion :

Query IS NOT


Sujet :

Outils MySQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Points : 4
    Points
    4
    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 !

  2. #2
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Eu ca serai plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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:
    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:
    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
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par cerede2000
    Eu ca serai plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  4. #4
    Membre habitué Avatar de KINENVEU
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 184
    Points : 131
    Points
    131
    Par défaut
    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.

  5. #5
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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)
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Points : 4
    Points
    4
    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 ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/04/2009, 17h38
  2. Not Like --> Query is Too Complex
    Par stefposs dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 17/09/2007, 17h08
  3. could not exécute query
    Par nabil148911 dans le forum Persistance des données
    Réponses: 1
    Dernier message: 13/08/2007, 02h24
  4. could not execute query
    Par nabil148911 dans le forum Hibernate
    Réponses: 3
    Dernier message: 20/07/2007, 14h37
  5. The query could not be executed
    Par Mooglie77 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 12/04/2007, 14h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo