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
 
Date d'inscription: mai 2006
Messages: 18
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 :
 
+----------------------------+
| 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 :
 
+-------+---------+-------+--------+-------+
| 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
Vieux 08/02/2010, 03h14   #2
Rédacteur/Modérateur
 
Avatar de Antoun
 
Nom : Antoine Dinimant
Date d'inscription: octobre 2006
Localisation: Paris
Âge: 39
Messages: 5 218
Par défaut

Je te propose de commencer par créer une table recensant les "O" :

Code :
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 :
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 est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 08/02/2010, 11h29   #3
Invité régulier
 
Date d'inscription: mai 2006
Messages: 18
Par défaut

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
Vieux 08/02/2010, 12h03   #4
Invité régulier
 
Date d'inscription: mai 2006
Messages: 18
Par défaut

j'ai resolu le probleme avec la requete:
Code :
 
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
NEWS MYSQLF.A.Q MYSQLSOURCES MYSQLTUTORIELS MYSQLOUTILS MYSQLLIVRES MYSQL

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Bases de données > MySQL



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 16h04.


Vos questions techniques : forum d'entraide MySQL - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.