Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels 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 08/02/2010, 01h08   #1
Invité régulier
 
Inscription : mai 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 19
Points : 8
Points : 8
Par défaut Probleme pour fusionner des tables.

Bonjour,
je suis debutant en SQL et je cherche a fusioner des tables.
donner d'entrée:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
+----------------------------+
| Tables_in_schema_en_etoile |
+----------------------------+
| f                          |
| f1                         |
| f2                         |
| g                          |
| g1                         |
| g2                         |
| h                          |
| h1                         |
| h2                         |
| q                          |
+----------------------------+
10 rows IN SET (0.00 sec)
 
mysql> SELECT * FROM h;
+-------+---------+
| O     | Product |
+-------+---------+
| test5 | test6   |
+-------+---------+
1 row IN SET (0.00 sec)
 
mysql> SELECT * FROM g;
+-------+-------+
| O     | Store |
+-------+-------+
| test3 | test4 |
+-------+-------+
1 row IN SET (0.00 sec)
 
mysql> SELECT * FROM f;
+--------+--------+
| O      | Date   |
+--------+--------+
| test1  | test2  |
| test44 | test45 |
+--------+--------+
2 rows IN SET (0.00 sec)
 
mysql> SELECT * FROM q;
+-------+-------+
| O     | Qty   |
+-------+-------+
| test7 | test8 |
+-------+-------+

et je cherche a obtenir le resultat suivant:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
+-------+---------+-------+--------+-------+
| O     | Product | Store | Date   | Qty   |
+-------+---------+-------+--------+-------+
| test5 | test6   |  NULL | NULL   | NULL  |     
+-------+---------+-------+--------+-------+
| test3 |  NULL   | test4 | NULL   | NULL  |  
+-------+---------+-------+--------+-------+
| test1 |  NULL   | NULL  | test2  | NULL  |
+-------+---------+-------+--------+-------+
|test44 |  NULL   | NULL  | test45 | NULL  | 
+-------+---------+-------+--------+-------+
| test7 |  NULL   | NULL  | NULL   | test8 |
+-------+---------+-------+--------+-------+
Pouvez vous m'aidez PLZ ou m'indiquer la solution?

merci d'avance.
makechaos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2010, 03h14   #2
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 832
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 41
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 832
Points : 9 482
Points : 9 482
Je te propose de commencer par créer une table recensant les "O" :

Code :
1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE ListeO AS
SELECT O FROM f 
UNION SELECT O FROM f1 
UNION SELECT O FROM f2 
UNION SELECT O FROM g 
UNION SELECT O FROM g1 
UNION SELECT O FROM g2 
UNION SELECT O FROM h 
UNION SELECT O FROM h1 
UNION SELECT O FROM h2 
UNION SELECT O FROM q ;
Maintenant, tu peux récupérer tes diverses infos :

Code :
1
2
3
4
5
6
SELECT O, h.Product, g.Store, f.Date, q.Qty
FROM ListeO AS L
  LEFT JOIN h ON L.O = h.O
  LEFT JOIN g ON L.O = g.O
  LEFT JOIN f ON L.O = f.O
  LEFT JOIN q ON L.O = q.O
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2010, 11h29   #3
Invité régulier
 
Inscription : mai 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 19
Points : 8
Points : 8
j'ai essayé ta proposition il me dit que la colone 0 est ambigue.

Code :
ERROR 1052 (23000): COLUMN 'O' IN FIELD list IS ambiguous
je comprend pas pourquoi.

merci.
makechaos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2010, 12h03   #4
Invité régulier
 
Inscription : mai 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 19
Points : 8
Points : 8
j'ai resolu le probleme avec la requete:
Code :
1
2
3
4
5
6
7
 
SELECT L.O, h.Product, g.Store, f.Date, q.Qty
FROM ListeO AS L
 LEFT JOIN h ON L.O = h.O
 LEFT JOIN g ON L.O = g.O
 LEFT JOIN f ON L.O = f.O
 LEFT JOIN q ON L.O = q.O
merci pour l'aide
makechaos est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 19h59.


 
 
 
 
Partenaires

Hébergement Web