2011-08-12 4 views
0

J'ai donc un DB appelé fichiers et il contient 3 tables (IMG, FLASH, PDF) ... comment j'exécuterais une requête sur tout cela et retournerais tout en eux comme un seul tableau?MYSQL: Sélectionner parmi toutes les tables dans un DB

+2

Pourquoi cette façon? Pourquoi pas une table avec le champ 'fileType'? – Mchl

+0

Parce que je stocke des données différentes en fonction de chaque fichier, tels que PDF a un numéro de page, le mode .etc –

Répondre

2

Si vous avez le même champ dans vos tableaux, vous pouvez UNION les résultats:

SELECT content 
FROM IMG 
UNION ALL 
SELECT content 
FROM FLASH 
UNION ALL 
SELECT content 
FROM PDF 
+0

Utilisez l'union tout si vous ne voulez pas supprimer les doublons. De plus, il court plus vite que l'union. –

+0

Vrai, et je ne pense pas qu'il puisse y avoir de double entre un flash et un pdf! –

0

Vous pouvez être intéressé par le moteur de stockage MySQL MERGE si vos 3 tables ont des structures identiques. Si ce n'est pas simplement utiliser UNION et utiliser des alias si vos colonnes n'ont pas les mêmes noms.

SELECT commonColumn1, commonColumn2 
FROM IMG 
UNION ALL 
SELECT commonColumn1, commonColumn2 
FROM FLASH 
UNION ALL 
SELECT commonColumn1, notSoCommonColumn2 AS commonColumn2 
FROM PDF 
0

ont-ils tous exactement le même jeu de colonnes?

Si oui, vous pourriez faire une UNION

sinon, vous devrez émettre 3 requêtes ...

+0

Ils n'ont pas la même structure mais ils partagent certaines colonnes. –

Questions connexes