Hej, har en person-tabell som ser ut som följer: Varför inte en group by med having count = 1 <code>SQL - en self join? (MSSQL)
person
--------
pid (primary key)
namn
adress
ort
--------
Om jag via sql vill returnera all information om de personer i tabellen som bor i en ort där ingen annan
person i tabellen bor. Hur ska det se ut då? Jag gissar att det borde bli en self join på något sätt, men har inte fått till det .
om jsg har fyra personer i tabellen som bor i stockholm , men bara en som bor i örebro. så är det således örebroaren jag är intresserad av.
/AndreasSv: SQL - en self join? (MSSQL)
<code>
select ort,pid,namn,adress from tabell
group by ort,pid,namn,adress
having count(ort)=1
</code>Sv: SQL - en self join? (MSSQL)
SELECT x.pid, x.namn, x.adress, x.ort
FROM person x
INNER JOIN (
SELECT ort, COUNT(*) ortcount
FROM person
GROUP BY ort
HAVING COUNT(*) = 1
) y ON x.ort = y.ort
</code>