Zevcore 17 Napisano 20 Stycznia Udostępnij Napisano 20 Stycznia Witam, mam taką bazę danych Próbuje wyświetlić najwyższe góry w danych pasmach, tj. do czasu kiedy nie dołączam do zapytania wyświetlającego najwyższe góry tabeli pasma wszystko jest OK, SELECT gora, max(wysokosc) FROM gory GROUP BY gora ORDER BY wysokosc DESC LIMIT 7; w momencie połączenia i pogrupowania po paśmie SELECT gora, max(wysokosc), pasma.pasmo FROM gory JOIN pasma ON gory.id_pasmo=pasma.id_pasmo GROUP BY pasma.pasmo ORDER BY wysokosc DESC LIMIT 7; pokazuje najwyższe góry, ale złe nazwy tych gór Odnośnik do odpowiedzi Udostępnij na innych stronach
Założyciel SeNioR 9 343 Napisano 20 Stycznia Założyciel Udostępnij Napisano 20 Stycznia 3 godziny temu, Zevcore napisał: GROUP BY pasma.pasmo Spróbuj pogrupować według kolumny "gora" Tomik i Mativve dodali reakcje 2 Odnośnik do odpowiedzi Udostępnij na innych stronach
Ekspert -n3veR 6 241 Napisano 20 Stycznia Ekspert Udostępnij Napisano 20 Stycznia (edytowane) Góra może należeć jedynie do jednego pasma, ale musi leżeć w minimum jednym kraju. Czyli góra <> pasmo - 1:1, góra <> kraj - 1:n. Pomijam słabe nazewnictwo kolumn, ale ja spróbowałbym takiego query: SELECT `g`.`gora` gora, max(`g`.`wysokosc`) wysokosc, `k`.`kraj` kraj, `p`.`pasmo` pasmo FROM `pasma` p LEFT JOIN `gory` g ON `g`.`id_pasmo` = `p`.`id_pasmo` LEFT JOIN `kraje` k ON `k`.`id_kraj` = `g`.`id_kraj` GROUP BY `p`.`id_pasmo` ORDER BY wysokosc DESC; Pisane z palca i może nie zadziałać. Nie mam też jak przetestować, bo nie dałeś dumpa struktury. Edytowane 20 Stycznia przez -n3veR Mativve, SeNioR i Tomik dodali reakcje 3 Odnośnik do odpowiedzi Udostępnij na innych stronach
Rekomendowane odpowiedzi
Problem wciąż nierozwiązany? Dodaj swoją odpowiedź
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto. Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się