was sind die Verwendungen der verschiedenen Operationen in SQL JOIN? Ich möchte wissen, warum wir die verschiedenen inneren und äußeren Verbindungen brauchen.was sind die Verwendungen der verschiedenen Join-Operationen in SQL
Antwort
Die einzige Art von Join wirklich brauchen ist LEFT OUTER JOIN
. Jede andere Art von Join kann in Form von einem oder mehreren linken Outer-Joins und möglicherweise einige Filterung neu geschrieben werden. Warum brauchen wir alle anderen? Will man die Leute nur verwirren? Wäre es nicht einfacher, wenn es nur eine Art von Join gäbe?
Sie könnten auch fragen: Warum haben beide a <= b
und b >= a
? Tun diese nicht einfach dasselbe? Können wir nicht einfach einen von ihnen loswerden? Es würde die Dinge vereinfachen!
Manchmal ist es einfacher, <=
zu >=
zu tauschen, anstatt die Argumente um zu tauschen. In ähnlicher Weise sind ein linker Join und ein rechter Join genau das Gleiche, wenn die Operanden getauscht werden. Aber wiederum ist es praktisch, beide Optionen zu haben, anstatt dass die Leute ihre Abfragen in einer bestimmten Reihenfolge schreiben müssen.
Eine andere Sache, die Sie fragen könnte, ist: In der Logik, warum tun wir AND
, OR
, NOT
, XOR
, NAND
, NOR
, etc? All dies kann in Bezug auf NAND
s umgeschrieben werden! Warum nicht einfach NAND
haben?Nun, es ist awkward ein OR
in Bezug auf NAND
s zu schreiben, und es ist nicht so offensichtlich, was die Absicht ist - wenn Sie OR
schreiben, wissen die Leute sofort, was Sie meinen. Wenn Sie eine Reihe von NAND
s schreiben, ist es nicht offensichtlich, was Sie erreichen wollen.
In ähnlicher Weise, wenn Sie a FULL OUTER JOIN b
tun möchten, können Sie einen linken Join und einen rechten Join machen, entfernen Sie doppelte Ergebnisse und dann Union alle. Aber das ist ein Schmerz und so gibt es eine Kurzformel dafür.
Wann verwenden Sie jedes? Hier ist eine vereinfachte Regel:
- Wenn Sie immer eine Ergebniszeile für jede Zeile in der LINKEN Tabelle möchten, verwenden Sie einen LINKEN ÄUSSEREN JOIN.
- Wenn Sie immer eine Ergebniszeile für jede Zeile in der RECHTEN Tabelle möchten, verwenden Sie eine RECHTE OUTER-Verknüpfung.
- Wenn Sie immer eine Ergebniszeile für jede Zeile in einer der Tabellen wünschen, verwenden Sie einen FULL OUTER JOIN.
- Wenn Sie nur eine Ergebniszeile wünschen, wenn in beiden Tabellen eine Zeile vorhanden ist, verwenden Sie einen INNEREN JOIN.
- Wenn Sie alle möglichen Zeilenpaare, eine Zeile aus jeder Tabelle, wollen, verwenden Sie ein CROSS JOIN.
soll Dieser Link löscht alles, was Sie im Zusammenhang Zweifel JOIN:
http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html
Ich habe dieses Tutorial verwendet, um Join-Operationen vor dem Posten zu verstehen. Meine Frage ist, warum brauchen wir so viele verschiedene Join-Operationen? Wann soll welche Join-Operation verwendet werden? – varunthacker
inner join
- verbindet Reihen von beiden Sätzen des Spiels auf bestimmte Kriterien.
outer join
- wählt alle Elemente eines Satzes aus, zusammen mit passenden oder leeren (falls nicht übereinstimmen) Elementen aus dem anderen Satz. Äußere Verknüpfungen können left
oder right
sein, um anzugeben, welcher Satz in seiner Gesamtheit zurückgeführt.
Um die anderen Antworten klarer zu machen - SIE unterschiedliche Ergebnisse erhalten die Verbindung nach Sie wählen, wenn die Spalten auf Sie Nullwerte enthalten sind Beitritt - zum Beispiel.
So - für jedes Real-life Szenario ist es kommt, dass sie paßt (entweder Sie die Linien ohne die Daten oder nicht in der Nullwert Beispiel wollen).
Meine Antwort geht davon aus 2 Tabellen auf einem einzigen Schlüssel verbunden:
INNER JOIN
- die Ergebnisse erhalten, die in sind beide Tabellen beitreten (nach der Regel kommen)FULL OUTER JOIN
- erhalten alle Ergebnisse aus beide Tabelle (Cartesian Produkt)LEFT OUTER JOIN
- alle Ergebnisse von links Tisch bekommen und die entsprechenden Ergebnisse von rechts
Sie können WHERE
Klauseln hinzufügen, um die Ergebnisse weiter einschränken.
Verwenden Sie diese, um nur zu bekommen, was Sie wollen bekommen.
- 1. Was sind die Verwendungen für Cross Join?
- 2. Was sind die Verwendungen von SetWriteDeadline
- 3. Was sind die Verwendungen von atomaren Wegen?
- 4. Was sind alle Verwendungen von '@' in C#?
- 5. Was sind die Verwendungen des Fehlerprädikats in Prolog?
- 6. Was sind die Vorteile der verschiedenen Endianess?
- 7. Was sind Verwendungen von Verschlüssen für OOP?
- 8. Was sind einige Verwendungen von Clojure Metadaten?
- 9. Was sind Verwendungen von polymorphen Arten?
- 10. Was sind die Verwendungen von iter (aufrufbar, Sentinel)?
- 11. Was sind die richtigen Verwendungen von @NonNull und @Nullable?
- 12. Was sind die Verwendungen von Ruby's Hash.Replace oder Array.Replace?
- 13. Was sind die verschiedenen Auslöser in WPF?
- 14. Was sind die verschiedenen Eigenschaften in System.DirectoryServices.DirectorySearcher.PropertiesToLoad
- 15. Was sind die verschiedenen Zieltypen in EDE?
- 16. Was sind die legitimen Verwendungen von globalen Tastatur-Hooks?
- 17. Was sind die verschiedenen AccuRev-Versionsnummern?
- 18. Was sind die verschiedenen Techniken sind megamorphic Aufrufstellen effizienter
- 19. Was sind die verschiedenen gültigen Prototypen der Hauptfunktion?
- 20. Wofür sind Namespaces? Was ist mit den Verwendungen?
- 21. Was sind ungewöhnliche und kreative Verwendungen von html5 Leinwand
- 22. In Swift, was ist der Unterschied zwischen den zwei verschiedenen Verwendungen des Selbst?
- 23. Was sind die verschiedenen Möglichkeiten, einen Cursor zu ersetzen?
- 24. Was sind die verschiedenen Techniken für Memoization in Java?
- 25. Was sind die verschiedenen Möglichkeiten, 'Enumerations' in SQL Server zu behandeln?
- 26. Was sind die guten SQL Podcasts?
- 27. Was sind die verschiedenen Methoden, um bereichsübergreifende Anliegen zu injizieren?
- 28. MSMQ .mp-Dateien - Was sind die verschiedenen Typen?
- 29. Was ist genau ein indizierter Funktor in Haskell und was sind seine Verwendungen?
- 30. Was sind die verschiedenen Anwendungsfälle von Joblib gegen Gurke?
Warum in der Welt sind Leute, die diese Frage abstimmen? – Nix
Um. Vielleicht ist es eine gute Frage aus ihrer Perspektive? – EvilTeach