..


Sponsored Links

Das Gegenteil von einem INNER JOIN oder die Datensätze zu erhalten stimmen nicht überein

Artikel von Max Bossi geschrieben

Wer weiß, was SQL-Kenntnisse der JOIN ist. In unserem Führer und andere Artikel, die wir erklären, wie das und JOIN, wie man Beziehungen zwischen verschiedenen Tabellen in einer Datenbank zu erstellen.

Die häufigste Forderung wird durch das Instrument zufrieden JOIN von Spielen zwischen zwei Tabellen, in welchem ​​Fall der JOIN-Klausel INNER hilft herauszufinden, welche genau verortet und gibt die Felder, die die Korrespondenz innerhalb von zwei oder mehr beteiligten Tabellen gesucht erfüllen in der JOIN.

Viel weniger intuitiv ist die Notwendigkeit, die Felder, die sonst nicht über ein Spiel in der JOIN zu identifizieren.

Nehmen wir ein Beispiel.
Angenommen, Sie haben eine Datenbank mit einer E-Commerce besteht aus nur zwei Tabellen zu verwalten:

  • Kunden (mit den Stammdaten des Kunden)
  • Bestellungen (mit Bestellungen von Kunden aus)
Angenommen, Sie möchten zwei verschiedene Listen von Kunden-Extrakt: 1) eine Liste der Kunden, die bereits eine Bestellung aufgeben, 2) die Liste der Kunden, die noch nicht alles gekauft haben, platziert.

Zur Erfüllung der ersten Voraussetzung ist natürlich, ganz einfach:

 



 SELECT CUSTOMER.FIRST, CUSTOMER.LAST







 FROM Kunden







 INNER JOIN Bestellungen







 ON = clienti.id ordini.id_cliente







 ORDER BY ASC CUSTOMER.LAST

 
und bisher kein Problem.

Aber wie können wir tun, um das Ergebnis umzukehren? Nun ... Erstens, nicht mit einem LEFT JOIN, INNER JOIN, aber im Hinblick auf die Suche nach einem Spiel nicht voll ist, aber teilweise, wobei jedoch ergibt sich aus der linken Tabelle ohnehin zurückgegeben werden.
Ohne diese werden wir für die Suche (mit der WHERE-Klausel) fehlende Datensätze (dh nicht in den Bericht gefunden) und dann als NULL (in SQL NULL ist als eine Art "besonderen Wert", dass ein Fehlen von Wert identifiziert ermittelt, definiert ..)

Lassen Sie den Code sehen:

 



 SELECT CUSTOMER.FIRST, CUSTOMER.LAST







 FROM Kunden







 LEFT JOIN Bestellungen







 ON = clienti.id ordini.id_cliente







 WHERE IS NULL ordini.id_cliente







 ORDER BY ASC CUSTOMER.LAST

 
Das Ergebnis ist in der Tat, die Liste der Namen von Kunden, die noch nie etwas gekauft haben.

In der selben Kategorie ...
E-Learning
MS Access (Course) MS Access (Course)
Erfahren Sie, wie das Erstellen und Verwalten von Datenbanken einfach und schnell. Ab 29 €.
MySQL (Kurs) MySQL (Kurs)
Management von Open-Source-Datenbank. Ab 39 €.
SQL-und Datenbank-(Kurs) SQL-und Datenbank-(Kurs)
Erstellen und Verwalten von relationalen Datenbanken. Ab 39 €.
Sponsored Links