begin process at 2012 02 10 07:09:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

MySQL

 > 

Requêtes

 > 

Auto jointure assez complexe


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Auto jointure assez complexe

mercredi 13 mai 2009 à 15:48:45 | Auto jointure assez complexe

plopinou

Bonjour a tous,

Je vais essaye d'etre le plus claire possible sur mon probleme.

J'ai une table test, avec 3 champs :

product_id, champs_name, value

avec des valeurs comme ceci:

1, size, 12
1, height, 15
1, weight, 100
1, color, blue

2, size, 8
2, height, 11
2, weight, 10
2, color, red

et j'aimerai bien les affichers sur une ligne par id_product c'est à dire :

1 size 12 height 15 weight 100 color blue
2 size 8 height 11 weight 10 color red

MAis voila au lieu d'avoir 2 resultat dans ma requete j'en ai 24.

Voici ma requete :

SELECT DISTINCT t1. * , t2. * , t3. * , t4. *
FROM product p
LEFT JOIN test AS t1 ON ( t1.product_id = p.id )
LEFT JOIN test AS t2 ON ( p.id = t2.product_id )
LEFT JOIN test AS t3 ON ( p.id = t3.product_id )
LEFT JOIN test AS t4 ON ( p.id = t4.product_id )
HAVING
t1.champs_name, <> t2.champs_name
AND t1.champs_name <> t3.champs_name
AND t1.champs_name <> t4.champs_name
AND t2.champs_name <> t3.champs_name
AND t2.champs_name <> t4.champs_name
AND t3.champs_name <> t4.champs_name

ORDER BY p.id


Ou est mon erreur? j'ai l'impression que le disctinct ne fonctionne pas car le resultat que j'obtient dans 24 ligne c'est juste les element qui change de place exemple :

1 size 12 height 15 weight 100 color blue
1 size 12 height 15 color blue weight 100
1 size 12 color blue height 15 weight 100


Quelqu'un pourrait il m'aider?
Merci d'avance
mercredi 13 mai 2009 à 16:21:42 | Re : Auto jointure assez complexe

plopinou

Réponse acceptée !
Voici la solution :)

 
SELECTDISTINCT t1. * , t2. * , t3. * , t4. *
FROM product p
 
LEFTJOIN test AS t1 ON
(
t1.product_id = p.id
)
 
LEFTJOIN test AS t2 ON
(
p.id = t2.product_id AND
t1.champs_name <> t2.field_name
)
 
LEFTJOIN test AS t3 ON
(
p.id = t3.product_id AND
t1.champs_name <> t3.champs_name AND
t2.champs_name <> t3.champs_name
)
 
LEFTJOIN test AS t4 ON
(
p.id = t4.product_id AND
t1.champs_name <> t4.champs_name AND
t2.champs_name <> t4.champs_name AND
t3.champs_name <> t4.champs_name
)
 
GROUPBY p.id
ORDERBY p.id



Cette discussion est classée dans : champs, id, name, size, product


Répondre à ce message

Sujets en rapport avec ce message

aide pour une requête [ par Shadow_Membre ] slt tlm,Donc voila, j'ai besoin d'aide pour une requête mysql/php. Le problème c'est que je suis un petit peu rouillé.   Soit deux table « table1 » et erreur creation de champs [ par georgesm ] Bonjour,j'ai une base sur Mysql avec plusieurs table. Mon problème est le suivant:Une des tables refuse l'enregistrement de nouvelles données à partir Concaténation et inscription du résultat dans une table [ par x3ption ] Bonjour!Voilà... je suis débutant en ce qui attrait au SQL et VBA pour MS Access. Je suis actuellement à la création d'une base de donnée de films DVD requete sql [ par moustaine84 ] slt je cherche une requete qui fait l'insertion des des champs dans deux tableaux prmier tableua  a(id-a,nom, prenom) et l 2eme tableau b(id-b,id-a,ag Create table @Name [ par yanis7518 ] Bonjour à tous, je voudrais savoir s'il était possible de créer une table sql avec un nom dynamique? ex [code=autre]Declare @Id as varchar (5) Dec supprimer les enregistrements uniques [ par slak ] Salut J'ai une table avec des champs id, url, date, timele champs id accept les doublonsje voudrai supprimer tout les enregistrements avec le id uniqu Problème LEFT JOINT et champs en double ! [ par dami27 ] Bonjour à tous ! J'ai un problème et je ne sais pas comment le résoudre... Voici ma requete : SELECT monchampFROM annonce  LEFT JOIN annonce_rub1 ON ( pivot pour nombre de champs inconnu [ par sarra0 ] Bonjour, J'ai une table MATIERE(id_ma,libelle_ma,id_module) 11_____matière1_____1 12_____matière2_____1 13_____matière3_____2 pour préparer la fiche d Problème de requête mySQL Afficher plusieurs info d'un même champs sur une seule ligne [ par snif84 ] Bonjour à tous, J'ai un problème de requête sur une seul table. user_id field_id textarea 9532 16 Torres 9532 18 Samanta 9533 18 Audrey 9533 16 WARI Vue sql server 2008 [ par mbagiella ] Bonjour à tous, J'ai une table des ventes avec comme colonne : Pays, Produit, Année, Mois, Qté Je voudrais faire une vue pour avoir comme colonne :


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,966 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales