Unterabfrage gibt mehr als 1 Zeile zurück

8
%Vor%

Gibt einen Fehler an, dass die Unterabfrage mehr als eine Zeile zurückgibt. Was ist die Ursache?

    
user2066199 12.02.2013, 21:09
quelle

2 Antworten

14

Ihre beiden äußeren Abfragen sind so strukturiert, dass sie ein einzelnes Ergebnis aus ihren Unterabfragen erwarten. Aber so, wie Sie Dinge strukturiert haben, geben Ihre Unterabfragen möglicherweise mehr als ein Ergebnis zurück. Wenn Sie mehr als ein Ergebnis wünschen, restrukturieren Sie es wie folgt:

%Vor%

Unterabfragen sind auch die Kill-Leistung und exponentiell für verschachtelte Unterabfragen. Vielleicht möchten Sie stattdessen INNER JOIN verwenden.

    
bioneuralnet 12.02.2013 21:23
quelle
2

Wenn Sie Ihre Anfrage abbrechen, haben Sie

Hauptabfrage:

%Vor%

Unterabfrage 1:

%Vor%

Unterabfrage 2:

%Vor%

Da Sie Gleichheitszeichen verwenden, können die Unterabfragen nicht mehrere Elemente zurückgeben. Es scheint, dass Unterabfrage 2 eine größere Chance hat, 2 Elemente zurückzugeben, da OR verwendet wird. Möglicherweise möchten Sie IN -Klausel wie WHERE symptom_id IN (sub-query2) mit WHERE disease_id IN (sub-query1)

ausprobieren     
UnholyRanger 12.02.2013 21:23
quelle

Tags und Links