Skocz do zawartości
Forum komputerowe

Maksymalne rekordy w kwerendzie zagnieżdżonej


Rekomendowane odpowiedzi

Witam, mam taką bazę danych

obraz.png.9be2cebec129686bcc83551a7c060cdf.png

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
  • Ekspert
Napisano (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 przez -n3veR
Odnośnik do odpowiedzi
Udostępnij na innych stronach

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ę
×
×
  • Dodaj nową pozycję...