J'ai plusieurs tables différentes, mais elles ont toutes deux colonnes portant le même nom. Je veux écrire une procédure stockée qui recherche une colonne dans toutes les tables et renvoie le résultat. Des idées? Je suis assez nub quand il s'agit de SQL.interroger plusieurs tables et combiner les résultats dans une table de retour pour la procédure stockée?
0
A
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...
Questions connexes
- 1. Procédure stockée renvoyant plusieurs résultats
- 2. Procédure stockée renvoyer plusieurs ensembles de résultats
- 3. Linq - Interroger une table et retour des résultats en XML
- 4. Retour des résultats de la procédure stockée fortement typée
- 5. MySQL - Procédure stockée avec plusieurs jeux de résultats
- 6. La procédure SQL Server renvoie plusieurs tables - Insérer les résultats dans les tables
- 7. Combiner une procédure stockée et une requête dans T-SQL
- 8. Passage de plusieurs tables à une procédure stockée avec plusieurs paramètres de valeur table problème
- 9. Méthode recommandée pour interroger plusieurs tables versionnées
- 10. SubSonic Retour ExecuteSingle pour une procédure stockée
- 11. Affecter les résultats d'une procédure stockée dans une variable dans une autre procédure stockée
- 12. Comment stocker les résultats d'une requête dans une procédure stockée
- 13. Sql Agréger les résultats d'une procédure stockée
- 14. Choisir les valeurs de retour de la procédure stockée
- 15. Interroger plusieurs tables et renvoyer uniquement un seul tableau?
- 16. Comment rechercher/interroger plusieurs tables pour retourner un résultat commun?
- 17. Retour d'erreurs sans procédure stockée
- 18. Comment utiliser les résultats d'une procédure stockée dans une autre?
- 19. Récupération de plusieurs jeux de résultats à partir de la procédure stockée mysql dans les rails
- 20. Nom de la table DataSet d'une procédure stockée
- 21. inserts et sélectionne plusieurs dans une procédure stockée
- 22. Sortie de plusieurs tables de procédure stockée avec LINQ et ASP.NET MVC
- 23. Recherche de la modularité dans SQL Server 2005 - Retour de plusieurs jeux d'enregistrements dans une procédure stockée
- 24. Combiner les résultats de plusieurs requêtes ajax
- 25. Combiner les résultats de la requête sql
- 26. MySQL: Comment combiner une procédure stockée avec une autre fonction?
- 27. Configurer Elmah pour utiliser la procédure stockée existante/tables
- 28. MySql: interroger plusieurs tables dynamiques identiques
- 29. Résultats de la procédure stockée dynamique au tableau
- 30. comment sélectionner une table particulière à partir d'une procédure stockée qui renvoie plusieurs tables?
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