7
votes

PostgreSQL Union deux tables et rejoindre avec une troisième table

Je veux l'union des tables et les rejoindre avec une troisième table de métadonnées et j'aimerais savoir quelle approche est la meilleure / la plus rapide?
La base de données est un postgreSQL.
Vous trouverez ci-dessous mes deux suggestions, mais d'autres approches sont les bienvenues.

Pour faire la jointure avant le syndicat sur les deux tables: xxx

ou pour faire l'union d'abord, puis faire La jointure: xxx


3 commentaires

Je trouve le deuxième plus facile sur l'œil (humain). J'inspire habituellement pour l'approche la plus «sonnerie relative» ou le plus facile à lire et à entretenir (souvent la même chose, ce qui n'est pas une simple coïncidence), à ​​moins que cela ne fonctionne vraiment pas contre une autre construction de candidats.


La première méthode fonctionne pour moi d'obtenir les données. Comment l'insérez-vous alors dans Table2 ?


J'ai ajouté un insert dans (colonnes) avant la sélection et a été capable d'ajouter les rangées


3 Réponses :


7
votes

Exécuter un Expliquez Analyser sur les deux déclarations, alors vous allez voir lequel est plus efficace.


0 commentaires

1
votes

Il peut être imprévisible en raison de l'optimisateur SQL-moteur. Il vaut mieux examiner le plan d'exécution. Enfin, les deux approches peuvent être représentées de la même manière


0 commentaires

0
votes

Dans la mesure de ce que je me souvienne, Expliquez Explic révélera que PostgreSQL interprète la seconde comme la première à condition que il n'y a pas de groupe par clause (explicite ou implicite En raison de Union au lieu de Union tout ) dans l'une des sous-requêtes.


0 commentaires