Was ist der Zweck (oder Anwendungsfall) für einen äußeren Join in SQL?

Wird ein Outer-Join nur für die Analyse vom Entwickler verwendet? Ich habe Probleme, einen Anwendungsfall dafür zu finden, warum Sie data in zwei oder mehr Tabellen einbeziehen möchten, die nichts miteinander zu tun haben oder nicht mit Ihren Auswahlkriterien übereinstimmen.

Solutions Collecting From Web of "Was ist der Zweck (oder Anwendungsfall) für einen äußeren Join in SQL?"

Ein Beispiel für einen Anwendungsfall wäre die Erstellung eines Berichts, der ALLE Kunden und deren Käufe anzeigt. Das heißt, auch Kunden, die nichts gekauft haben. Wenn Sie eine normale Verknüpfung von Kunden und Käufen durchführen, werden im Bericht nur die Kunden mit mindestens einem Kauf angezeigt.

Hier ist eine sehr gute list von Beispielen von keinem anderen als Jeff Atwood – Eine visuelle Erklärung von SQL Joins er zeigt eine neue Darstellung visuell von den SQL Joins.

Der Fall "stimmt nicht überein" ist für optionale data nützlich. Etwas, das für einige Zeilen vorhanden ist, aber nicht für andere.

Der OUTER JOIN soll die Fälle ansprechen, in denen Sie eine Reihe von datasätzen aus einer Primärtabelle auswählen möchten, die verwandte datasätze in einer Sekundärtabelle enthalten können oder nicht.

Ein INNER-Join würde alle primären datasätze aus der list weglassen, die nicht auch in der sekundären Tabelle enthalten sind. Jeder OUTER JOIN garantiert die Sichtbarkeit aller qualifizierten Primärdatensätze.

Vielleicht haben Sie eine Benutzertabelle und eine Adresstabelle, die damit verknüpft ist, da Ihre Benutzer möglicherweise keine Adresse eingeben oder mehrere (Versand, Straße, Post usw.) haben können. Wenn Sie alle Ihre Benutzer auflisten möchten, aber auch Adressen für diejenigen anzeigen möchten, für die sie vorhanden sind, müssen Sie einen äußeren Join für die Adresstabelle verwenden.

Nehmen wir an, Sie haben zwei Tabellen, eine für Benutzer und eine für etwas wie Qualifikationen, Sie möchten eine Abfrage durchführen, die alle Benutzer mit ihren Qualifikationen erhält, wenn sie welche haben. In diesem Fall würden Sie einen Outer-Join verwenden, um alle Benutzer zurück zu erhalten und diejenigen mit Qualifikationen. Ein innerer Join würde Ihnen nur die Benutzer geben, die eine Qualifikation hatten.

Der Unterschied zwischen äußeren und inneren Joins besteht hauptsächlich darin, dass die äußeren Joins jeden datasatz aus beiden verknüpften Tabellen beibehalten, unabhängig davon, ob das Join-Prädikat übereinstimmt oder nicht. Ein Anwendungsfall müsste sich also darum drehen, über "fehlende Dinge" zu wissen, z. Kunden, die keine Einkäufe getätigt haben, oder Mitglieder, denen persönliche data fehlen.

Ein toller Artikel über Outer Joins: Triff die Experten: Terry Purcell zum Codieren von Prädikaten in Outer Joins: Ein Vergleich einfacher Outer Join Konstrukte