Michał Rodzynek Student, UAM
Temat: Ciekawy SELECT.. (przynajmniej dla mnie)
Wydawało mi się, że już ten select załatwiłem i nawet byłem trochę dumy, że udało mi się to samemu "rozwalić", ale chyba się trochę pośpieszyłem..Mam takie zapytanie:
SELECT idUzytkownik, idKonkurencjiPerZawody, wynik FROM wyniki_2012 WHERE idKonkurencjiPerZawody =
(SELECT kpz.idKonkurencjiPerZawody
FROM konkurencjeperzawody kpz
INNER JOIN konkurencje k ON kpz.idKonkurencji = k.idKonkurencji
INNER JOIN zawodynazwa zn ON kpz.idZawodyNazwa = zn.idZawodyNazwa
WHERE k.nazwaKonkurencji LIKE 'pistolet szyb%' && zn.nazwaZawody LIKE 'Ogólno%') ;
i z tego taki efekt (tabele):
idUzytkownika | idKonkurencjiPerZawody | wynik
-----------------------------------------------------------------------------------
2 | 3 | 35
2 | 3 | 99
1 | 3 | 19
1 | 3 | 27
I teraz próbuje uzystkać taki efekt aby tylko najwyższe wyniki zostały przekazany jakby wyżej... by następnie po idUzytkownik "połączyć" to z tabelą uzytkownicy i w konsekwencji wypisać imieUzytkownika, nazwiskoUzytkownka i najwyzsze wyniki..
Próbowałem coś takiego:
(ale tutaj przekłamane są najwyższe wyniki.. tzn. coś tam nie trybi..)
Michał Rodzynek edytował(a) ten post dnia 02.12.12 o godzinie 22:02
SELECT imieUzytkownika, nazwiskoUzytkownika, w.wynik, MAX(w.wynik) FROM uzytkownicy u, wyniki_2012 w WHERE u.idUzytkownik=w.idUzytkownik AND u.idUzytkownik IN (
SELECT idUzytkownik FROM wyniki_2012 WHERE idKonkurencjiPerZawody =
(SELECT kpz.idKonkurencjiPerZawody
FROM konkurencjeperzawody kpz
INNER JOIN konkurencje k ON kpz.idKonkurencji = k.idKonkurencji
INNER JOIN zawodynazwa zn ON kpz.idZawodyNazwa = zn.idZawodyNazwa
WHERE k.nazwaKonkurencji LIKE 'pistolet szyb%' && zn.nazwaZawody LIKE 'Ogólno%')
GROUP BY idUzytkownik) GROUP BY nazwiskoUzytkownika;