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

Requêtes MySQL Discussion :

[MySQL] - extension de requete


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 60
    Points : 55
    Points
    55
    Par défaut [MySQL] - extension de requete
    Bonjour,

    la requete suivante, trouve, pour des valeurs différentes 'a' et 'b' dans la table STOCK, l'id du user ayant ces 2 valeurs dans cette table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT    S1.user_id,
       S1.valeur,
       S2.valeur
    FROM   stock S1
    INNER JOIN stock S2
    ON   S2.user_id = S1.user_id
    AND   S1.valeur = 'a'
    AND   S2.valeur = 'b';
    le code n'étant pas de moi, je voudrais savoir comment faire pour executer la meme action, mais pour n valeurs de la table stock.
    en d'autres termes, je voudrais extraire l'id du user qui possede dans la table STOCK n valeurs que je pourrais spécifier.

    merci par avance,

    yelbied

  2. #2
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,

    Pas simple ton affaire...
    Je te propose ça :
    Créer 1 table ds laquelle tu mets les valeurs que tu veux retrouver, et faire la jointure avec.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE params
    (
    valeur char(1) not null
    );
     
    INSERT INTO params (valeur) VALUES ('a');
    INSERT INTO params (valeur) VALUES ('b');
    INSERT INTO params (valeur) VALUES ('c');
    Tu modifies cette table là selon les valeurs que tu cherches.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT 	DISTINCT (S1.user_id)
    FROM	stock S1
    INNER JOIN params P1 ON S1.valeur = P1.valeur
    INNER JOIN stock S2 ON S1.user_id = S2.user_id
    GROUP BY S1.user_id
    HAVING	COUNT (DISTINCT S1.valeur) = (SELECT COUNT (*) FROM params)
    Normalement cette requête là n'a pas à être modifiée, mais je ne sais pas si ta v° de MYSql va accepter le "select count (*) ... ds la clause HAVING, il faudra peut-être que tu la codes en dur, ou que tu la passes en paramêtre.
    J'ai pas d'autre idée pour te dépanner, peut-être que qqu'un d'autre ici pourra faire mieux ?

    A +

    PS : Comme tu ouvres 1 nv question, penses à mettre résolu sur l'autre

  3. #3
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 60
    Points : 55
    Points
    55
    Par défaut
    merci, je vais faire avec ca, je suis bien que mon prob est assez tordu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur [1.20] - Cannot load MySQL extension.....
    Par Poseidon62 dans le forum Administration
    Réponses: 3
    Dernier message: 07/02/2006, 17h06
  2. Experts Mysql : Optimiser une requete sur codes postaux
    Par El Riiico dans le forum Requêtes
    Réponses: 6
    Dernier message: 20/01/2006, 19h00
  3. erreur mysql... probleme de requete
    Par om.rava dans le forum Requêtes
    Réponses: 5
    Dernier message: 07/12/2005, 22h48
  4. [MySQL 4] Sous Requete IN .. SELECT ...
    Par pataluc dans le forum Langage SQL
    Réponses: 3
    Dernier message: 08/09/2004, 16h54
  5. [MYSQL] conditions et requetes
    Par sebos63 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 26/02/2004, 17h41

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