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 :

Tri complexe sur une table


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 38
    Points : 24
    Points
    24
    Par défaut Tri complexe sur une table
    Bonjour,

    J'ai une table sous cette forme :


    -id--strat_id--classe-
    -1--10--8-
    -2--11--7-
    -3--12--8-
    -4--10--9-
    -5--9--5-
    -6--12--5-
    -7--11--7-
    -8--10--8-
    -9--12--10-


    Je dois trouver le strat_id pour des valeurs variable classe.

    C'est à dire qu'elle est le strat_id commun pour classe a AND classe b.

    Exemple = SELECT strat_id FROM table WHERE classe = 5 OR classe = 8

    Une tel requette vas me trouver les lignes : 1, 3, 5, 6 et 8
    Hors je ne veux que les lignes qui ont le même strat_id c'est a dire la ligne 3 et 5 qui on un strat_id de 12.

    Sachant que je ne métrise pas le nombre de condition Where (qui peut varier de une à 6 conditions).

    Y'a 'il une solution ?

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Bon finalement je repond à moi même je suis passé par un algo assez complexe pour arriver à ca :

    foreach($classe as $elt){
    $where .= $or.$type." = ".$elt;
    $or = " OR ";
    }
    $qid = mysql_query("SELECT id_strategies, $type FROM cat_teams WHERE $where");
    }
    $or = "";
    while($req = mysql_fetch_array($qid)){

    $classe_t1[$req['id_strategies']][$req[$type]] += 1;
    if($classe_t1[$req['id_strategies']][$req[$type]] == 1){
    $classe_t2[$req['id_strategies']] += 1;
    }
    }
    $z = count($classe);
    foreach($classe_t2 as $id => $nb){
    if($nb == $z){
    $select_id .= $or." id = ".$id;
    $or = " OR ";
    }
    }

    return $select_id.")";

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 04/12/2013, 21h22
  2. [AC-2003] Calculs complexes sur une table Access
    Par Trius dans le forum VBA Access
    Réponses: 4
    Dernier message: 01/02/2013, 11h28
  3. Requète complexe lier 2 champs sur une table
    Par charpeer dans le forum Requêtes
    Réponses: 4
    Dernier message: 20/06/2008, 15h28
  4. [Access] Requête sur une table et tri sur une autre
    Par VooDooS dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/08/2006, 15h07
  5. Encore une requête complexe sur plusieurs tables
    Par DenPro dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/12/2003, 19h05

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