webForumDet fria alternativet

Problem med SQL-sats

6 svar · 290 visningar · startad av aleborg

aleborgMedlem sedan jan. 20012 962 inlägg
#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?

aleborgMedlem sedan jan. 20012 962 inlägg
#2

Någon?

LarsGMedlem sedan dec. 200012 465 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.

aleborgMedlem sedan jan. 20012 962 inlägg
#4

hur skapar man en temp-tabell i MySQL?

LarsGMedlem sedan dec. 200012 465 inlägg
aleborgMedlem sedan jan. 20012 962 inlägg
#6

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

LarsGMedlem sedan dec. 200012 465 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 ...

Genererad på 374 ms · cache AV · v20260730165559-full.f96bc7eb