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

PHP & Base de données Discussion :

problème avec requête sql complexe


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 17
    Points : 13
    Points
    13
    Par défaut problème avec requête sql complexe
    bonjour a tous
    j'ai des produits enregistrés dans ma base de donnée, chaque produit a des attributs liés (environ 3 pour chaque produit). je veux récupérer en une seul ligne chaque id_pdt avec ces attribut liés
    id_pdt+nom_pdt+att1+att2+att3+prixatt1+prixatt2+prixatt3 pour les exporter ensuite dans un fichier csv.
    j'ai exécuter une requête sql complexe pour sélectionner les attributs liés a chaque produit mais j'ai trois ligne pour chaque id_pdt comme ça :
    id_pdt+nom_pdt+att1+vide+vide+prixatt1+vide+vide
    id_pdt+nom_pdt+vide+att2+vide+vide+prixat2+vide
    id_pdt+nom_pdt+vide+vide+att3+vide+vide+prixatt3

    comment je peut combiner les trois ligne en une seule ligne?
    quelqu'un a une idée??
    merci d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    J'ai pas trop compris les + mais peut-être avec UNION ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    les + c'est comme un séparateur, voici le résultat voulu dans mon fichier csv
    id_pdt;nom_pdt;att1;att2;att3;prixatt1;prixatt2;prixatt3;
    comment je peut utiliser UNION dans ma requête?
    voici la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    SELECT p.reference,pl.name as nom,
    				ROUND((SELECT ((p.`price` * IF(19.6,((100 + (19.6))/100),1) - IF(`reduction_from` = `reduction_to`, IF(`reduction_price` > 0, `reduction_price`, (p.`price` * IF(19.6,((100 + (19.6))/100),1) * `reduction_percent` / 100)),0))+pa.price) FROM product_attribute pa WHERE pa.id_product_attribute =pac.id_product_attribute AND pac.id_attribute =31) ,2) as prixA,
    				ROUND((SELECT ((p.`price` * IF(19.6,((100 + (19.6))/100),1) - IF(`reduction_from` = `reduction_to`, IF(`reduction_price` > 0, `reduction_price`, (p.`price` * IF(19.6,((100 + (19.6))/100),1) * `reduction_percent` / 100)),0))+pa.price) FROM product_attribute pa WHERE pa.id_product_attribute =pac.id_product_attribute AND pac.id_attribute =32) ,2) as prixB,
    				ROUND((SELECT ((p.`price` * IF(19.6,((100 + (19.6))/100),1) - IF(`reduction_from` = `reduction_to`, IF(`reduction_price` > 0, `reduction_price`, (p.`price` * IF(19.6,((100 + (19.6))/100),1) * `reduction_percent` / 100)),0))+pa.price) FROM product_attribute pa WHERE pa.id_product_attribute =pac.id_product_attribute AND pac.id_attribute =33) ,2) as prixC,
    				(SELECT pa.quantity FROM product_attribute pa WHERE pa.id_product_attribute =pac.id_product_attribute AND pac.id_attribute =31) as QteA,
    				(SELECT pa.quantity FROM product_attribute pa WHERE pa.id_product_attribute =pac.id_product_attribute AND pac.id_attribute =32) as QteB,
    				(SELECT pa.quantity FROM product_attribute pa WHERE pa.id_product_attribute =pac.id_product_attribute AND pac.id_attribute =33) as QteC
    					FROM `product_attribute` pa
    					LEFT JOIN product_lang pl ON (pa.id_product = pl.id_product)
    					LEFT JOIN product p ON (p.id_product = pl.id_product)
    					LEFT JOIN `product_attribute_combination` pac ON pac.`id_product_attribute` = pa.`id_product_attribute`
    					LEFT JOIN `attribute` a ON a.`id_attribute` = pac.`id_attribute`
    					LEFT JOIN `attribute_group` ag ON ag.`id_attribute_group` = a.`id_attribute_group`
    					LEFT JOIN `attribute_lang` al ON a.`id_attribute` = al.`id_attribute`
    					LEFT JOIN `attribute_group_lang` agl ON ag.`id_attribute_group` = agl.`id_attribute_group`
    					WHERE pa.`id_product` IN (SELECT p.id_product
    							FROM product p
    							WHERE al.id_lang =2 AND p.id_product !=6381754 AND p.id_product !=6381756 AND p.id_product !=6043485
    							GROUP BY p.id_product)
    					AND al.`id_lang` = 2
    					AND agl.`id_lang` = 2
    					AND pl.`id_lang` = 2
    					ORDER BY pa.`id_product_attribute`

Discussions similaires

  1. [SQL] Problème avec requête SQL
    Par Kenya dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/01/2008, 23h13
  2. Problème avec requête SQL dans VBA
    Par Mimisio dans le forum VBA Access
    Réponses: 10
    Dernier message: 13/07/2007, 12h00
  3. [SQL] problème avec requête sql
    Par belakhdarbts10 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/05/2007, 12h58
  4. probléme avec requête SQL
    Par richard60 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/03/2007, 19h18
  5. Problème avec requête SQL avec variables
    Par harry25 dans le forum ASP
    Réponses: 1
    Dernier message: 03/01/2007, 04h41

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