SQL-Implementierung von LeetCode (183. Kunden, die noch nie eine Bestellung aufgegeben haben)

SQL-Implementierung von LeetCode (183. Kunden, die noch nie eine Bestellung aufgegeben haben)

[LeetCode] 183.Kunden, die nie bestellen

Angenommen, eine Website enthält zwei Tabellen, die Tabelle „Kunden“ und die Tabelle „Bestellungen“. Schreiben Sie eine SQL-Abfrage, um alle Kunden zu finden, die nie etwas bestellen.

Tabelle: Kunden.

+----+--------+
| Ich würde | Name |
+----+--------+
| 1 | Joe |
| 2 | Heinrich |
| 3 | Sam |
| 4 | Max |
+----+--------+

Tabelle: Bestellungen.

+----+------------+
| ID | Kunden-ID |
+----+------------+
| 1 | 3 |
| 2 | 1 |
+----+------------+

Geben Sie anhand der obigen Tabellen als Beispiel Folgendes zurück:

+-------------+
| Kunden |
+-------------+
|Henry |
| Max |
+-------------+

Diese Frage gibt uns eine Kundentabelle und eine Bestelltabelle. Lassen Sie uns Kunden finden, die noch nie eine Bestellung aufgegeben haben. Unsere direkteste Methode besteht dann darin, die Kunden-ID zu finden, die nicht in der Bestelltabelle erscheint, indem wir das Schlüsselwort „Nicht in“ verwenden, wie unten gezeigt:

Lösung 1:

Wählen Sie Name AS Kunden FROM Kunden 
Wobei ID nicht in (Kunden-ID aus Bestellungen auswählen) ist;

Oder wir können auch einen Left Join verwenden, um die beiden Tabellen zu verbinden. Wir müssen nur die Kunden herausfinden, deren CustomerId auf der rechten Seite Null ist, was bedeutet, dass sie keine Bestellung aufgegeben haben:

Lösung 2:

Wählen Sie Name AS Kunden FROM Kunden
LINKS JOIN Bestellungen ON Kunden.Id = Bestellungen.KundenId
Wobei Orders.CustomerId NULL ist;

Wir können auch das Schlüsselwort „Not exists“ verwenden, das ähnlich wie „Not in“ funktioniert. Siehe den folgenden Code:

Lösung 3:

SELECT Name AS Kunden FROM Kunden c
WO NICHT EXISTIERT (SELECT * FROM Orders o WHERE o.CustomerId = c.Id);

Quellen:

https://leetcode.com/discuss/22624/three-accepted-solutions

https://leetcode.com/discuss/53213/a-solution-using-not-in-and-another-one-using-left-join

Dies ist das Ende des Artikels über die SQL-Implementierung von LeetCode (182. Kunden, die noch nie eine Bestellung aufgegeben haben). Weitere relevante Inhalte zur SQL-Implementierung von Kunden, die noch nie eine Bestellung aufgegeben haben, finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • SQL-Implementierung von LeetCode (196. Doppelte Postfächer löschen)
  • SQL-Implementierung LeetCode (185. Top drei der höchsten Gehälter in der Abteilung)
  • SQL-Implementierung von LeetCode (184. Das höchste Gehalt der Abteilung)
  • SQL-Implementierung von LeetCode (182. Doppelte Postfächer)
  • SQL-Implementierung von LeetCode (181. Angestellte verdienen mehr als Manager)
  • SQL implementiert LeetCode (180. Fortlaufende Zahlen)
  • C++-Implementierung von LeetCode (179. Maximale Anzahl an Kombinationen)
  • SQL-Implementierung von LeetCode (197. Steigende Temperatur)

<<:  Eine detaillierte Erklärung der überlappenden und weichen Farbanpassungsmethode bei der Farbanpassung von Webseiten

>>:  Die Größe der transparenten HTML-Popup-Ebeneninstanz kann eingestellt und proportional sein.

Artikel empfehlen

Anweisungen zur Verwendung der MySQL-IndexOF-Funktion

Wie unten dargestellt: LOCATE(Teilzeichenfolge,Ze...

Detaillierte Erklärung zur Verwendung von Eslint in Vue

Inhaltsverzeichnis 1. Beschreibung 2. Laden Sie d...

Der Unterschied zwischen div und span in HTML (Gemeinsamkeiten und Unterschiede)

Gemeinsamkeiten: Das DIV-Tag und das SPAN-Tag beh...

JavaScript zum Erzielen eines Produktlupeneffekts

In diesem Artikel wird der spezifische JavaScript...

Lösung für 1067, wenn Mysql in Windows startet

Ich habe erst vor ein paar Tagen mit der Arbeit b...

Einrichten eines Proxyservers mit nginx

Nginx kann seine Reverse-Proxy-Funktion zum Imple...

HTML verwendet reguläre Ausdrücke zum Testen von Tabellenbeispielen

Hier ist ein Beispielcode für die Verwendung regu...

React-Implementierungsbeispiel mit Amap (react-amap)

Die PC-Version von React wurde für die Verwendung...