begin process at 2010 02 09 18:17:33
  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 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 ( 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 requête sql [ par jodanielprince ] Voici ma BDD Liste_Message(#Message_ID,Objet, Pseudo, service, Direction, date_M, Message) Reponse(#Reponse_ID, Message_ID, Auteur, Date_R, reponse) emepcher les doublons des lignes [ par abdeslam2009 ] Bonjour, j'ai tenté de sélectionner plusieurs champs dans plusieurs tables(jointures) mais le problème que j'ai rencontré les lignes retournées sont Granularité de vérou dans les MAJ de vue indexé [ par Malkuth ] Bonjours, voilà le probléme : une table Ta : (id int identity, etat tinyint) ~40.000 rows une table Tb : (id int identity, refTa int, status tin


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,421 sec (3)

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