2010-06-15 4 views

Répondre

7

L'opération que vous recherchez est UNION ou UNION ALL.

SELECT * FROM (
SELECT col1, col2 FROM table1 
UNION ALL 
SELECT col1, col2 FROM table2 
UNION ALL 
SELECT col1, col2 FROM table3 
) all_tables 
WHERE all_tables.col1 = 'something' 

Si vous utilisez UNION plutôt que UNION ALL, la base de données éliminera les doublons qui peuvent être dans plusieurs tables. Si vous savez qu'il n'y aura pas de doublons, utilisez UNION ALL car il est généralement beaucoup plus rapide.

1
Select myColumn FROM Table1 
UNION Select myColumn FROM Table2 
UNION Select myColumn FROM Table3 

..etc

- Notez tous les noms de colonnes doivent être identiques et doivent être dans chaque table pour que cela fonctionne

1

Vous avez même pas besoin d'une procédure stockée. ..juste utiliser une requête d'union.

select field1, field2 from table1 where table1.field1=criteria 
union 
select field1, field2 from table2 where table2.field1=criteria 
union 
select field1, field2 from table3 where table3.field1=criteria 
etc... 
+0

Mais votre requête peut être placée dans une procédure stockée. Vous ne devriez pas comparer une requête avec un sproc, les requêtes vont à l'intérieur des sprocs dans lesquels vous pouvez ajouter des couches de sécurité. Donc, il/elle peut vouloir mettre cela dans un sproc. – JonH

Questions connexes