![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 19.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mysql 5.0 i wyższe wersje obsługują podzapytania w zapytaniach odnoszących się do kilku tabel?
Select Nazwa_Dzialu, Id_dzialu, Nazwisko, Zarobki from Kadra a inner join dzialy on a.id_dzialu=dzialy.id_dzialu where Zarobki = (Select Max(Zarobki) from Kadra b where b.id_dzialu =a.id_dzialu) To zadziała w mysql 5? Bo mi nie działa, nie wyrzuca błedu ale długo myśli. Co to może być? Chodzi mi bardziej o składnie niż logike, dlatego nie zamieszczam schematu tabel. Ktoś się w tym orientuje? Z góry dzięki. PS W MSSQL to chyba (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) działało, pzdr. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 19.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za zainteresowanie, już działa
Mylisz się mysz, można używając aliasów, jest to nawet często potrzebne, np gdy chcemy z tabeli otrzymać maksymalną wielkość z jednej kolumny(i wartości sąsiadów!) grupując według innej. np: tabela -> ludzie id, imie, wiek, hobby 1,pawel,20,sport 2,marek,23,sport 3,jarek,19,muzyka select max(wiek),imie from ludzie group by hobby da wynik: 1,pawel,23,sport 3,jarek,19,muzyka i jest źle bo najstarszy koleś z hobby = sport to marek a nie pawel (imie=pawel jest pierwsze w kolejności rekordów gdzie występuje hobby=sport) Poprawny select to: select wiek, imie from ludzie a where wiek=(select max(wiek) from ludzie b where b.hobby = a.hobby) 1,marek,23,sport 3,jarek,19,muzyka Nie sprawdzałem tego ale myśle że jest ok, pzdr |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 17:22 |