Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/01/2012, 14h36   #1
Invité de passage
 
Homme
Développeur Web
Inscription : avril 2011
Messages : 9
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 : 9
Points : 3
Points : 3
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
neo25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 15h01   #2
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
J'ai pas trop compris les + mais peut-être avec UNION ?
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 15h08   #3
Invité de passage
 
Homme
Développeur Web
Inscription : avril 2011
Messages : 9
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 : 9
Points : 3
Points : 3
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 :
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`
neo25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h19.


 
 
 
 
Partenaires

Hébergement Web