MySql in einem anderen auswählen auswählen?

8

Gibt es eine Möglichkeit, dies zu tun?

%Vor%

Ich habe Tabelle1 mit den IDs von Elementen, die ein Benutzer gekauft hat. Ich möchte die Summe aller vom Benutzer gekauften Artikel berechnen.

Ist die obige Abfrage zulässig? Wenn nicht, wie lautet die richtige Form?

    
Cristy 03.01.2011, 17:00
quelle

5 Antworten

17

Ändern Sie where id=(SELECT in where id IN (SELECT

Oder was Sie wirklich wollen, ist wahrscheinlich:

%Vor%     
Matt 03.01.2011, 17:03
quelle
7

Die Abfrage ist in Ordnung, solange der Subselect nur eine Zeile zurückgibt jedes Mal.

Wenn mehr Zeilen zurückgegeben werden, müssen Sie Ihre Abfrage wie folgt ändern:

%Vor%

HINWEIS: In Ihrem Fall wäre ein einfacher innerer Join wie andere vorgeschlagen viel redbarer (und vielleicht ein kleines bisschen schneller) - aber was Sie geschrieben haben ist absolut in Ordnung (es gibt immer mehrere Möglichkeiten, um das gewünschte Ergebnis zu erzielen - und es ist jetzt immer leicht zu sagen, wer einer der "Besten" ist ;-))

    
oezi 03.01.2011 17:06
quelle
2

Sie können auch die JOIN-Syntax verwenden

%Vor%

Sollte Ihnen das gleiche Ergebnis geben

    
Sparky 03.01.2011 17:04
quelle
1

A JOIN wäre besser lesbar:

%Vor%     
Phil Hunt 03.01.2011 17:03
quelle
1

Sie sollten SQL JOIN verwenden, um diese Funktionalität bereitzustellen.

%Vor%     
Ahmet Alp Balkan 03.01.2011 17:04
quelle

Tags und Links