Können wir mehrere Alias-Namen für eine einzelne Tabelle haben?Mehrere Alias-Namen für eine Tabelle
Antwort
Ja. Sie müssen dies zum Beispiel für ein self join, tun f Sie eine Tabelle haben eine Hierarchie zu speichern:
create table Foo (
FooID int
,ParentFooID int
,[columns]
)
Sie können eine Verknüpfung tun, um die Kinder von Eltern zu bekommen, die eine bestimmte Bedingung mit einer Abfrage wie erfüllen:
Select b.*
from Foo a
join Foo b
on a.FooID = b.ParentFooID
and [some condition filtering a]
+1 für Inferenzmöglichkeiten! –
Aber es wird die Leistung beeinflussen oder nicht? –
Der Abfrageoptimierer muss alles Notwendige tun, um das Verknüpfungsprädikat aufzulösen. Wenn die Tabelle beispielsweise groß ist und einen Index für ParentFooID hat, muss sie wahrscheinlich Index-Lookups durchführen, um den Join FooID - ParentFooID aufzulösen. Das Spiel wird immer mit einigen Ressourcen verbunden sein. – ConcernedOfTunbridgeWells
Nein, nicht in derselben Tabelle, aber Sie können die gleiche Tabelle zweimal auswählen und jedem einen anderen Alias geben.
Dadurch können Sie dann die gleiche Tabelle für einen anderen Zweck innerhalb einer einzigen Abfrage verwenden.
Aber es wird die Leistung beeinflussen oder nicht? –
Ja, wenn Sie die Tabelle zweimal auswählen, muss sie doppelt so viel arbeiten. Die Leistung hängt davon ab, wie sie verwendet werden, zu welchem Zweck sie verbunden sind und welche Indizes und Statistiken für den Abfrageoptimierer verfügbar sind. –
Da die Abfrage von Chris keine Join-Bedingung (implizit oder explizit) hat, wird eine kartesische Verknüpfung erwartet - d. Jede einzelne Zeile in der Tabelle wird mit allen Zeilen in derselben Tabelle verknüpft. Wenn Sie also 20 Zeilen in der Tabelle hätten, wäre Ihr Ergebnissatz 400 Zeilen! Das ist viel schlimmer als doppelt so viel Arbeit. Es sind jedoch nicht die Aliase, die die Arbeit verursachen - es ist die kartesische Verbindung. –
- 1. Hibernate gleiche Aliasnamen für verschiedene machen verbindet
- 2. WCF-Dienst Typ-Aliasnamen
- 3. Erweiterung Typ-Aliasnamen in schnellen
- 4. vb.net mehrere Abfragen eine Tabelle
- 5. Aliasnamen einer importierten Klasse erhalten
- 6. Was sind Aliasnamen in ldap?
- 7. So rufen Sie eine Merkmalsmethode mit Aliasnamen auf
- 8. Mehrere Identitätsspalten für Tabelle Ausnahme angegeben
- 9. Importieren Sie mehrere Dateien in eine Tabelle
- 10. Mehrere Anhänge für jeden Datensatz der Tabelle
- 11. Federdaten jpa für mehrere verbundene Tabelle
- 12. Layout für eine Tabelle
- 13. Variadische Vorlage Aliasnamen als Template-Argument
- 14. Kombinieren Sie mehrere Tabellen in eine Tabelle
- 15. Kann eine Tabelle mehrere Primärschlüssel haben?
- 16. Können Sie in Rails einen Aliasnamen erstellen?
- 17. Entity Framework 5 Mehrere Identitätsspalten für Tabelle angegeben. Nur eine Identitätsspalte pro Tabelle erlaubt
- 18. Legen Sie mehrere Werte für einzelne Fremdschlüsselfeld aus einer Tabelle in eine andere Tabelle
- 19. Angular2 bekomme den Aliasnamen der aktuellen Route
- 20. Yii Eine Relation für mehrere Tabellen
- 21. So erhalten Sie den Zählwert aus zwei Tabellen mit Aliasnamen
- 22. Mehrere SQL-Tabelle Join-
- 23. PostgreSQL Tabelle mehrere Werte
- 24. Benennen Sie eine Eigenschaft um oder geben Sie einen Aliasnamen in Entity Framework ein?
- 25. MYSQL Abfrage für eine Tabelle
- 26. mehrere Eingänge in Tabelle
- 27. Volltextindex für eine Ansicht oder eine Tabelle?
- 28. Verwenden mehrerer UITableViewCells für eine Tabelle
- 29. Eine Möglichkeit, für mehrere Websites
- 30. Eine Methode für mehrere Typen?
Warum möchten Sie? Haben Sie eine bestimmte Abfrage, die nicht funktioniert? –
für was Sie das brauchen? –
Self Joins oder Tabellen, die in mehreren Rollen leben. Ein Beispiel für Letzteres könnte eine Datumsdimensionstabelle sein, die mit einer Faktentabelle mit mehreren Daten verknüpft ist. – ConcernedOfTunbridgeWells