FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Flitig postare
|
Har kanske en udda fråga, men vi testar.
Jag har en flera tabeller i så kallad Many 2 Many struktur. Tabellerna jag har är: url, url2user och user Alla raderna i tabellerna är unika, men user kan ha flera länkar via url2user, lika så kan varje länk ha flera users. Vad jag vill är att sortera ut de 5 länkar som har flest users knutna till sig. Men hur skulle frågan se ut i SQL? Tack! |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Medlem
|
Denna SQL är för SQL-server, men om du har t.ex MySQL så är nog syntaxen snarlik.
Jag har gissat vad dina fält heter i respektive tabell. Nåt sånt här blir det: SELECT TOP 5 Url.Link, Count(User.UserID) as AntalUsers FROM Url, Url2User, User WHERE Url.UrlID = Url2User.UrlID AND Url2User.UserID = User.UserID Group by Url.Link ORDER BY AntalUsers DESC Senast redigerad av yadis den 2010-01-19 klockan 16:44 Anledning: syntaxfel:) |
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Supermoderator
|
Med undantag för TOP 5 så fungerar det även för MySQL. Om detta görs ofta så kan det dock vara en mer effektiv lösning att räkna upp url:er per användare istället.
__________________
Full-stack developer, free for smaller assignments |
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Medlem
|
Kollade lite på nätet o verkar som man skriver top 5 så här i MySQL(LIMIT 5):
SELECT Url.Link, Count(User.UserID) as AntalUsers LIMIT 5 FROM Url, Url2User, User WHERE Url.UrlID = Url2User.UrlID AND Url2User.UserID = User.UserID Group by Url.Link ORDER BY AntalUsers DESC |
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Flitig postare
|
Citat:
|
||
![]() |
![]() |
Svara |
|
|