Heim > Datenbank > MySQL-Tutorial > Wie führe ich einen Left Join mit einer vorgefilterten Tabelle in SQL durch?

Wie führe ich einen Left Join mit einer vorgefilterten Tabelle in SQL durch?

Susan Sarandon
Freigeben: 2025-01-14 13:31:46
Original
743 Leute haben es durchsucht

How to Perform a Left Join with a Pre-Filtered Table in SQL?

SQL Left Join effizient ausführen und Tabellendaten vorfiltern

Wenn Sie mit mehreren Tabellen arbeiten, ist es oft notwendig, eine der Tabellen zu filtern, bevor Sie sie zusammenführen. Dieses Beispiel umfasst zwei Tabellen: Customer und Entry.

Das Ziel besteht darin, die Eintragstabelle basierend auf einer bestimmten Kategorie „D“ zu filtern, bevor eine Linksverknüpfung zwischen diesen beiden Tabellen durchgeführt wird. Das erwartete Ergebnis ist: Alle Datensätze in der Kundentabelle abrufen, unabhängig davon, ob relevante Datensätze gleichzeitig in der Eingabetabelle vorhanden sind, Datensätze in der Eingabetabelle ausschließen, die die Kategoriebedingungen nicht erfüllen.

Die folgende SQL-Abfrage zeigt, wie dies erreicht wird:

<code class="language-sql">SELECT c.Customer, c.State, e.Entry
FROM Customer c
LEFT JOIN Entry e
   ON c.Customer=e.Customer
   AND e.Category='D'</code>
Nach dem Login kopieren

Durch das Verschieben der WHERE-Filterbedingung in die JOIN-Bedingung können wir vor dem Beitritt eine Kategoriefilterung auf die Eintragstabelle anwenden. Dadurch wird sichergestellt, dass nur Eintragsdatensätze, die die Kategoriekriterien erfüllen, in die Join-Ergebnisse einbezogen werden.

Beispieltabelle

<code>客户表 (Customer):

╔══════════╦═══════╗
║ Customer ║ State ║
╠══════════╬═══════╣
║ A        ║ S     ║
║ B        ║ V     ║
║ C        ║ L     ║
╚══════════╩═══════╝

条目表 (Entry):

╔══════════╦═══════╦══════════╗
║ Customer ║ Entry ║ Category ║
╠══════════╬═══════╬══════════╣
║ A        ║  5575 ║ D        ║
║ A        ║  6532 ║ C        ║
║ A        ║  3215 ║ D        ║
║ A        ║  5645 ║ M        ║
║ B        ║  3331 ║ A        ║
║ B        ║  4445 ║ D        ║
╚══════════╩═══════╩══════════╝</code>
Nach dem Login kopieren

Ergebnisse

<code>╔══════════╦═══════╦═══════╗
║ Customer ║ State ║ Entry ║
╠══════════╬═══════╬═══════╣
║ A        ║ S     ║  5575 ║
║ A        ║ S     ║  3215 ║
║ B        ║ V     ║  4445 ║
║ C        ║ L     ║  NULL ║
╚══════════╩═══════╩═══════╝</code>
Nach dem Login kopieren

Zusammenfassend lässt sich sagen, dass wir durch die Verwendung der AND-Klausel in der JOIN-Bedingung die Tabellen filtern können, bevor wir sie verknüpfen, und so Daten präziser auf der Grundlage der angegebenen Bedingungen abrufen.

Das obige ist der detaillierte Inhalt vonWie führe ich einen Left Join mit einer vorgefilterten Tabelle in SQL durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage