FAQ |
Kalender |
Ämnesverktyg | Visningsalternativ |
![]() |
#1 | ||
|
|||
Medlem
|
Tjena!
Bökar med en query som jag inte får till. Hur ska frågan se ut om jag vill få ut alla rader från en tabell som har det högsta värdet från en annan tabell. Har försökt i stil med följande (mysql): Kod:
SELECT t1.result, t2.* FROM tabell1 as t1, tabell2 as t2 WHERE t2.result = t1.result ORDER BY t1.result DESC |
||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Klarade millennium-buggen
|
Högsta resultatet eller alla resultat? Du kanske menar något i stil med:
select t2.* FROM tabell2 as t2 WHERE t2.result = (SELECT t1.result FROM tabell1 as t1 ORDER BY t1.result desc limit 1) Observera att syntaxen kan vara käpprätt åt skogen, det är urvalsprincipen jag undrar över. |
|||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Medlem
|
Jo precis alla rader i tabell 1 som har samma värde på result som det högsta värdet på result i tabell 2, skiver som en kratta men det kanske går att förstå ändå...
Jag testade din query, det klagas inget över felaktig syntax men däremot får jag ett tomt svar |
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Medlem
|
Egentligen har jag tänkt lite fel inser jag nu... Jag behöver bara alla rader som har det högsta värdet på result. Om data ser ut på följande sätt:
ID | NAMN | RESULT -------------------------- 0 | Jens | 4 1 | Nicke | 2 2 | Ola | 4 3 | Bengt | 1 Nu vill jag få ut raderna med Ola och Jens... |
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Klarade millennium-buggen
|
SELECT ID, Namn, Result FROM Tabell WHERE Result = (
SELECT MAX(Result) FROM Tabell GROUP BY Result ORDER BY Result DESC LIMIT 1 ) kanske?! |
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Medlem
|
yes sådär, fast ännu enklare.
SELECT ID, Namn, Result FROM Tabell WHERE Result = ( SELECT MAX(Result) FROM Tabell ) tackar! / vic |
||
![]() |
![]() |
![]() |
#7 | |||
|
||||
Klarade millennium-buggen
|
Hehe så du behövde inte tabell2 alls. Ja det underlättar ju.
|
|||
![]() |
![]() |
Svara |
|
|