Verschachtelung von Abfragen in SQL

9

Das Ziel meiner Anfrage besteht darin, den Namen des Landes und dessen Staatsoberhaupt zurückzugeben, wenn der Name des Hauptstaats einen Namen hat, der mit A beginnt, und die Hauptstadt des Landes mehr als 100.000 Personen enthält, die eine geschachtelte Abfrage verwenden.

Hier ist meine Frage:

%Vor%

Ich habe versucht, es umzukehren, es in die where-Klausel usw. zu setzen. Ich bekomme keine verschachtelten Abfragen. Ich bekomme nur Fehler zurück, wie "Unterabfrage gibt mehr als eine Zeile zurück" und so weiter. Wenn jemand mir bei der Bestellung helfen könnte und erklären würde, warum es ein bestimmter Weg sein muss, wäre das großartig.

    
ZAX 17.09.2012, 21:28
quelle

4 Antworten

15

Wenn es "verschachtelt" werden muss, wäre dies eine Möglichkeit, um Ihre Arbeit zu erledigen:

%Vor%

A JOIN wäre jedoch effizienter als eine korrelierte Unterabfrage. Kann es sein, dass derjenige, der dir jemals diese Aufgabe gegeben hat, nicht in der Lage ist, sich selbst zu beschleunigen?

    
Erwin Brandstetter 17.09.2012, 21:46
quelle
7

Sie müssen join die zwei Tabellen und filtern dann das Ergebnis in where clause:

%Vor%     
Adrian Carneiro 17.09.2012 21:30
quelle
1

So wie ich es sehe, wäre der einzige Platz für eine geschachtelte Abfrage in der WHERE-Klausel, also z.B.

%Vor%

Abgesehen davon muss ich Adrian zustimmen: Warum zum Teufel sollten Sie verschachtelte Abfragen verwenden?

    
sqrtsben 17.09.2012 21:46
quelle
1

Abfrage unten sollte Ihnen helfen, zu erreichen, was Sie wollen.

%Vor%     
user3585283 25.06.2014 12:00
quelle

Tags und Links