Kom ihåg mig?
Home Menu

Menu


Sortera efter flest kopior

Ämnesverktyg Visningsalternativ
Oläst 2010-01-19, 15:14 #1
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
Standard Sortera efter flest kopior

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!
grinditwp är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-01-19, 16:42 #2
yadis yadis är inte uppkopplad
Medlem
 
Reg.datum: Mar 2009
Inlägg: 66
yadis yadis är inte uppkopplad
Medlem
 
Reg.datum: Mar 2009
Inlägg: 66
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:)
yadis är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-01-19, 17:02 #3
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
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
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-01-19, 18:25 #4
yadis yadis är inte uppkopplad
Medlem
 
Reg.datum: Mar 2009
Inlägg: 66
yadis yadis är inte uppkopplad
Medlem
 
Reg.datum: Mar 2009
Inlägg: 66
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
yadis är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-01-19, 18:55 #5
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
Citat:
Ursprungligen postat av yadis Visa inlägg
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
Tack! ska testa detta.
grinditwp är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 22:31.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017