folgende Situation.
Ein SQL Join Abfrage soll ermitteln welche Benutzer bzw. Nicknames die selben Vorname haben.
Bisher habe ich folgendes , gibt alle Benutzer aus .
Bitte um Hilfe
select * from Benutzer left join Studenten on Studenten.Nickname=Benutzer.Nickname
left join Professoren on Professoren.Nickname=Benutzer.Nickname
left join Mitarbeiter on MItarbeiter.Nickname=Benutzer.Nickname
order by Vorname;
Du könntest z.B. via row_number() zählen per Gruppe zählen. Dabei kannst alle Spalten anzeigen. Oder Du erweiterst Deine obige Abfrage um die ID (bzw. das, was Du als PK hast), und nimmst diese Abfrage als Subselect im Where.
Ja, “where Nickname in(select COUNT(Vorname)” will Nickname (sicherlich ein varchar) mit der Anzahl (ein INT) vergleichen. Denk mal drüber nach, dann merkst sicher auch Du, daß das Bullshit ist.
test=*# select * from stray ;
nickname | vorname
----------+---------
nick1 | otto
nick2 | frieda
nick3 | paula
nick4 | otto
(4 rows)
Time: 0,161 ms
test=*# select * from stray where vorname in (select vorname from stray group by vorname having count(vorname) > 1 );
nickname | vorname
----------+---------
nick1 | otto
nick4 | otto
(2 rows)