Partage
  • Partager sur Facebook
  • Partager sur Twitter

Requete SQL

    21 juillet 2010 à 11:21:18

    Bonjour,

    Je souhaite à partir des tables définies plus bas :
    > Afficher le tableau exemple pour 1 procédure, 1 client et 1 famille

    Il y a beaucoup de produits et familles, j'ai donc une contrainte d'optimisation, je cherche une technique pour sortir tout les résultats en une requête et ainsi éviter les requêtes dans les boucles.


    Environnement : PHP5 et MySQL5.1

    Merci d'avance pour vos réponses.
    A+

    Sébastien

    Le tableau exemple pour 1 procedure, 1 client et 1 famille
    _________________________
    -Sous-famille1
    --Sous-sous-famille1
    Produit1 - qttCom1
    Produit2 - qttCom2
    Produit3 - qttCom3
    Produit4 - qttCom4
    Produit5 - qttCom5
    --Sous-sous-famille2
    Produit6 - qttCom6
    Produit7 - qttCom7
    Produit8 - qttCom8
    ---Sous-sous-sous-famille1
    Produit9 - qttCom9
    Produit10 - qttCom10
    -Sous-famille2
    Produit11 - qttCom11
    Produit12 - qttCom12
    -Sous-famille3
    Produit13 - qttCom13
    Produit14 - qttCom14
    Produit15 - qttCom15


    J'ai 5 tables :

    g_procedure
    -------------
    idProc
    dateProc

    g_client
    -------------
    idCli
    raisonCli

    g_famille
    -------------
    idFam
    nomFam
    idParentFam (clé étrangère sur la même table)
    niveauFam (indique si famille(0), sous-famille(1) ou sous-sous-famille(2) etc...)

    g_produit
    -------------
    idProd
    nomProc
    idFam (clé étrangère de famille)

    g_commande
    -------------
    idCom
    qttCom
    idCli (clé étrangère de g_client)
    idProc (clé étrangère de g_procedure)
    idProd (clé étrangère de g_produit)
    • Partager sur Facebook
    • Partager sur Twitter
      21 juillet 2010 à 21:11:04

      Pas compris. Mais ça ressemble à une requête récursive, chose que MySQL ne sait pas faire.
      • Partager sur Facebook
      • Partager sur Twitter
        21 juillet 2010 à 23:09:27

        Avec MySQL pas le choix, t'es obligé d'utiliser des requêtes dans des boucles ou des plans foireux comme la représentation intervallaire.

        Note que tu peux diminuer le nombre de requêtes en faisant comme ça :

        - obtenir tous les id du niveau 0
        - SELECT enfants WHERE parent IN (liste de ces ids)
        tu obtiens tous les ids du niveau 1
        - tu recommences, ça te fait une requête par niveau.
        • Partager sur Facebook
        • Partager sur Twitter

        Requete SQL

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown