Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes 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 03/03/2011, 11h26   #1
Membre régulier
 
Avatar de thecanea
 
Inscription : octobre 2008
Messages : 124
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Côte d'Or (Bourgogne)

Informations forums :
Inscription : octobre 2008
Messages : 124
Points : 71
Points : 71
Par défaut Requête unique sur plusieurs tables

Bonjour,

Je souhaiterai savoir s'il est possible de requêter plusieurs tables en une seule fois.

Par exemple, si j'ai les tables suivantes : voiture, avion, bateau, je souhaiterai obtenir la liste des voitures, des avions et des bateaux (avec leur champ communs ou renommés : date de création, libellé) en une seule requête, sans modifier la modélisation (par exemple je sais qu'on aurait pu ajouter une table véhicule), et sans qu'un bateau ne soit lié à une voiture ou un avion et vice et versa.

J'ai essayé la requête suivante avec pour résultat de mixer mes avions et mes bateaux et mes voitures :

Code :
SELECT a.*, b.*, c.* FROM avion a, bateau b, voiture c
Merci par avance pour vos idées et remarques.

Thec,
thecanea est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 13h28   #2
Rédacteur/Modérateur

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

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

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 544
Points : 9 544
Si tes trois tables contiennent les mêmes colonnes...

Code :
1
2
3
4
5
6
7
8
SELECT * 
FROM avion 
UNION ALL
SELECT * 
FROM bateau
UNION ALL 
SELECT * 
FROM voiture
Sinon, c'est à toi de bidouiller pour mettre les colonnes en correspondance, par exemple :

Code :
1
2
3
4
5
6
7
8
SELECT idavion, marque, modele, couleur, envergure, NULL AS pavillon
FROM avion 
UNION ALL
SELECT idbateau, marque, modele, couleur, longueur, pavillon
FROM bateau
UNION ALL 
SELECT idvoiture, marque, modele, couleur, poids, NULL
FROM voiture
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h24.


 
 
 
 
Partenaires

Hébergement Web