webForumDet fria alternativet
Logga in / Bli medlem

Problem med SQL-sats

Databaser & SQL

6 svar · 290 visningar · startad av aleborg

Medlem sedan jan. 20013 341 inlägg
Frågan#1

Har den här koden som funkar utmärkt:

Select Sum(My_Tips_Score) As poang, 
User_Firstname, User_Lastname, Community_Name
 From My_Tips Inner Join Users On User_ID=My_Tips_Owner 
Inner Join Community On My_Tips_Community=Community_ID 
Inner Join Matcher On Match_ID=My_Tips_MatchID 
Where Match_Score_1>'' And Match_Score_2>''  
Group By Community_Name, User_ID Order By 1 Desc Limit 50

Men nu vill jag bara ha dom senaste 30 matcherna:

Select Sum(My_Tips_Score) As poang, 
User_Firstname, User_Lastname, Community_Name
 From My_Tips Inner Join Users On User_ID=My_Tips_Owner 
Inner Join Community On My_Tips_Community=Community_ID 
Inner Join Matcher On Match_ID=My_Tips_MatchID 
Where (Match_Score_1>'' And Match_Score_2>'' 
Order By Match_Tid Desc Limit 30) 
Group By Community_Name, User_ID Order By 1 Desc Limit 50

tänkte jag men icke!

Nån som har ett förslag?

Medlem sedan jan. 20013 341 inlägg
#2

Någon?

Medlem sedan dec. 200012 464 inlägg
#3

Du får nog göra det i två steg.

  1. Skapa en temp-tabell som innehåller de 30 senaste match_tid

  2. Lägg till en join mot temptabellen i din ursprungliga fråga.

Medlem sedan jan. 20013 341 inlägg
#4

hur skapar man en temp-tabell i MySQL?

Medlem sedan dec. 200012 464 inlägg
Medlem sedan jan. 20013 341 inlägg
#6

Tack :)
Finns det nått snabbt sätt att fylla den temporära tabellen med info från en annan tabell?

Medlem sedan dec. 200012 464 inlägg
#7

Det enklaste är nog att att göra

create temporary table t ... select ...

eller

create temporary table t ...

insert into t select ...

272 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)