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 :

Une requête complexe


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Une requête complexe
    Bonjour,

    Voila ce que j'aimerais faire:

    j'ai une table commande (id_cmd, date), une table produit (id_pro, nom) et une table de liaison liaison (id_cmd, id_pro)

    J'aimerais faire ressortir en une et une seule requête sql les commandes et leurs produits.

    un truc du genre :

    cmd1, 12/12/2002,
    voiture,
    brosse à dents,
    papier toilette

    cmd2, 10/09/2005,
    poubelle,
    voiture,
    dentifrice

    etc

    Je présice aussi que je souhaite créer cette requête afin de l'insérer dans une vue (mysql5).

    Merci d'avance

  2. #2
    Membre éprouvé
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Points : 984
    Points
    984
    Par défaut
    Salut,

    Une requête de ce genre devrait peut-être te convenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT c.id_cmd, c.date, GROUP_CONCAT(p.nom)
    FROM commande c
    JOIN liaison l ON l.id_cmd = c.id_cmd
    JOIN produit p ON p.id_pro = l.id_pro
    GROUP BY id_cmd
    Le nom de tous les produits commandés seront concaténés dans un champ de type texte. Il n'est pas possible d'avoir un nombre de colonnes variable, donc tu ne pourras pas faire exactement ce que tu désires faire.

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    merci, ça va déjà un peu mieux

  4. #4
    Membre éprouvé
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    Par défaut
    Ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $requete = "SELECT c.id_cmd, c.date, p.nom
    FROM `commande` AS c, `produit` AS p, `liaison` AS l
    WHERE c.id_cmd = ' ".$ton_id_que_tu_veux." ' AND l.id_cmd = c.id_cmd AND p.id_pro = l.id_pro ;";
     
    $resultat = mysql_query($requete)
    a flute pour le tableau avec plusieurs produit... j'y avais pas pensé, bon j'y reflechi

  5. #5
    Membre éprouvé
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    Par défaut
    Ou sinon deux requetes, une pour le nom et l'id, et une autre pour les produits puisque tu as deja l'id....

  6. #6
    Futur Membre du Club
    Inscrit en
    Février 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Oui je sais faire avec 2 requêtes, je me demandais si on pouvait pas faire ça en une seule requête lol.

    J'ai tjs fait des trucs du genre :

    sql = "Select id, nom ..... where id=1"

    while (resultat) {
    sql2 = "slect id2, nom2 ..... where id=resultat[id]"
    }

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

Discussions similaires

  1. une requête complexe
    Par naima2005 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 17/03/2007, 10h51
  2. [MSSQL2005] Besoin d'aide pour une requête complexe
    Par Vonotar dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/01/2007, 17h47
  3. Réponses: 2
    Dernier message: 12/07/2006, 21h49
  4. Aide pour écrire une requête complexe
    Par julienbdx dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/11/2005, 17h58
  5. Encore une requête complexe sur plusieurs tables
    Par DenPro dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/12/2003, 20h05

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