2017-12-06 1 views
3

Ich versuche, eine MySQL-Abfrage zu schreiben, mindestens zwei oder mehr als denselben Benutzer subscription.Here ist die Abfrage wählen:MySQL Fehlercode: # 1111 - Ungültige Verwendung von Gruppenfunktion

SELECT a.* FROM `subscription` a, user b WHERE b.id=a.user_id and 
    count(a.user_id) > 1 group by a.id 

Kann mir jemand sagen, was mache ich falsch?

+0

Aggregatfunktion nicht in where-Klausel erlaubt –

Antwort

3

Sie sollten having mit Aggregatfunktionen verwenden. Where wird zum Filtern von Zeilen verwendet. Having wird verwendet, um Gruppen basierend auf der gegebenen Bedingung zu filtern.

SELECT a.* FROM `subscription` a, user b WHERE b.id=a.user_id 
group by a.id 
having count(a.user_id) > 1 

Verwenden Sie auch ANSI-Syntax für Join wie folgt:

SELECT a.* 
FROM `subscription` a 
inner join 
user b 
on b.id=a.user_id 
group by a.id 
having count(a.user_id) > 1 
; 
Verwandte Themen