Est-il possible d'extraire des données de deux tables (ayant les mêmes champs) dans une vue? Fondamentalement, donc la vue voit les données comme si c'était une table.Données provenant de deux tables dans une vue
Répondre
Oui, en utilisant un UNION -
CREATE VIEW vw_combined AS
SELECT * FROM TABLE1
UNION ALL
SELECT * FROM TABLE2
... exige qu'il y ait le même nombre de colonnes et les types de données correspondance à chaque position.
..preferrably, en utilisant JOIN:
CREATE VIEW vw_combined AS
SELECT *
FROM TABLE1 t1
JOIN TABLE2 t2 ON t2.col = t1.col
Mais je veux mettre en garde contre selon les points de vue - sinon matérialisé, ils ne sont préparés instructions SQL. Il n'y a aucun avantage de performance, et peut avoir un impact négatif sur les performances si vous construisez une vue basée sur un autre. De plus, les vues sont fragiles - elles peuvent changer, et vous ne saurez pas avant d'utiliser une vue de support s'il y a des problèmes.
create or replace view view_name as
select * from table_1
union all select * from table_2
Note: Les colonnes de la vue sont définies au moment où la vue est créée. L'ajout de colonnes à table_1 et table_2 après la création de la vue n'apparaîtra pas dans view_name. Vous devrez réexécuter le DDL ci-dessus pour afficher de nouvelles colonnes.
Si vous souhaitez dupliquer les lignes à collasped aux lignes simples (mais potentiellement plus de travail pour le serveur):
create or replace view view_name as
select * from table_1
union select * from table_2
En général, il est mauvaise forme à utiliser *
dans la liste de sélection, mais en supposant que les requêtes utiliser la vue va choisir ce dont ils ont besoin, je l'utiliserais ici au lieu de nommer explicitement toutes les colonnes. (D'autant plus que je ne voudrais pas avoir à ajouter les noms de colonne lorsque table_1 et table_2 changent.)
+1: J'ai oublié de mentionner les colonnes à la création –
@OMG Ponies: Ça m'est arrivé récemment, c'est frais dans les banques de mémoire. –
- 1. Données provenant de trois tables
- 2. Fusion de deux tables provenant de bases de données différentes
- 3. Combinaison de données provenant de deux tables MySQL
- 4. Comment paginer deux tables dans une vue
- 5. Deux tables une vue ASP MVC
- 6. Comment inclure des rowcounts filtrés provenant de deux autres tables dans une requête d'un tiers?
- 7. Champ de recherche - Sélection de données provenant de plusieurs tables
- 8. Comment afficher deux tables dans une vue d'interface utilisateur
- 9. deux tables vue gestion des données sur iphone
- 10. LINQ to SQL: Données provenant de deux tables non liées, triées à la date
- 11. Mise à jour d'une colonne dans une table avec des valeurs provenant de deux autres tables
- 12. vue mySQL pour deux tables différentes?
- 13. Insertion SQL avec des données provenant de plusieurs tables
- 14. Charger deux tables liées dans une base de données Oracle
- 15. Paramètres JavaScript provenant des données de modèle de la vue
- 16. Deux objets de domaine dans une vue
- 17. supprimer de deux tables dans une requête
- 18. Comment remplir une table à deux colonnes avec des données non liées provenant de deux sources différentes?
- 19. Rejoindre deux tables similaires dans MySQL
- 20. fusion de deux tables de deux bases de données
- 21. Comment fusionner des données provenant de deux bases de données d'accès 2007 distinctes
- 22. Interroger deux tables dans une mysql requête
- 23. sqlite3 opérations de date lors de la jonction de deux tables dans une vue?
- 24. Tables de deux bases de données différentes dans un DBML?
- 25. Rails: Comment puis-je verrouiller des données dans un enregistrement provenant de nombreuses tables système?
- 26. Quelle est la façon correcte d'avoir une vue des ajustements entre deux tables dans SQL
- 27. Affichage des données de plusieurs tables dans une vue comme une liste - ASP.Net MVC
- 28. Faire une requête SQL dans deux tables
- 29. joindre deux tables dans une grande table
- 30. Voir SQL avec les données de deux tables
"de préférence, en utilisant un JOIN" Seulement si cela répond aux exigences. Je n'ai pas vu d'implication que les lignes de table1 et table2 étaient liées de la façon dont une jointure aurait du sens. OP a déclaré: «qui ont les mêmes champs», de sorte que le syndicat fonctionnerait si les types correspondent. –
@ Shannon Severance: Je ne vois pas le mal à suggérer un examen de la logique, ou de donner des informations supplémentaires qui pourraient être utiles. –
Je suis d'accord qu'il était bon de mentionner la jointure, car il existe deux façons de combiner deux tables rendant les résultats plus longs ou plus larges que les tables par elles-mêmes. (+1 pour ce BTW.) Je ne pense pas que l'un est préférable à l'autre sans savoir avec certitude ce que OP essaie de faire. –