Mam takie tabelki:
OSOBA (id, imie) oraz ADRES(id, osoba_id, ulica) (osoba_id jest fk do osoba(id))
z czego widac ze jedna osoba moze miec wiele adresow. Mam problem z zapytaniem ktore by mi zwrocilo id adresow wszystkich osob ktore maja tylko 1 adres. Poki co mam:
select max(a.id) from adres a inner join osoba o on a.osoba_id = o.id group by a.osoba_id having count(a.id) = 1;
Ten max moze byc avg lub min poniewaz to i tak tylko 1 krotke zwroci, ale nie podoba mi sie. Robie to tylko dlatego ze gdy nie dam maxa, dostaje blad ze select moze miec tylko kolumny z group by lub funkcje agregujace, co wlasnie robie. Da sie to jakos lepiej rozwiazac?