shaoyin | Je ne suis pas un expert en SQL, mais il y a au moins la requête suivante qui répond à ton problème. C'est vraiment brut de fonderie, il y a sûrement moyen d'optimiser, mais mes connaissances s'arrêtent là.
Code :
- select if(isnull(ID1), if (isnull(ID2) , ID3 , ID2) , ID1) as id , DATA1 , DATA2, DATA3
- from TBL1 left join TBL2 on ID1 = ID2 left join TBL3 on ID1 = ID3
- union
- select if(isnull(ID1), if (isnull(ID2) , ID3 , ID2) , ID1) as id , DATA1 , DATA2, DATA3
- from TBL2 left join TBL1 on ID2 = ID1 left join TBL3 on ID2 = ID3
- union
- select if(isnull(ID1), if (isnull(ID2) , ID3 , ID2) , ID1) as id , DATA1 , DATA2, DATA3
- from TBL3 left join TBL1 on ID3 = ID1 left join TBL3 on ID3 = ID2
|
Si quelqu'un sait comment optimiser tout ca, ca m'intéresse ! |