![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 3.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Uczę się MySQL'a i stanąłem przed takim problemem: Mam 2 tabele. 1 zawiera kategorie. 2 zawiera przepisy (relacja po id_cat) Potrzebuje napisać takie zapytanie, które wyrzuci wszystkie kategorie z tabeli 1, i równocześnie zliczy wszystkie przepisy z tabeli 2 należące do poszczególnych kategorii, czyli osiągnąć coś w rodzaju: - kategoria 1 (ilość przepisów w kategorii) - kategoria 2 (ilość przepisów w kategorii) (..) Z tematem poradziłem sobie za pomocą dwóch zapytań:
ale chciałbym to załatwić jednym. Zakładam, że trzeba to zrobić jakoś z podzapytaniem, ale nigdy podzapytań jeszcze nie stosowałem i nie orientuje się w nich za dobrze. Próbowałem, ale nic z tego nie wyszło. Proszę o pomoc w konstrukcji zapytania do bazy. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
1. Łączysz pierwsze zapytanie z drugim po wspólnym kluczu przy pomocy LEFT JOIN, czyli w taki sposób by zwrócić wszystkie wyniki z pierwszego zapytania i odpowiadające im wyniki z drugiego, o ile istnieją, a jeśli nie istnieją to NULL.
2. Wykorzystujesz COALESCE by zamiast NULL wstawić 0 dla kategorii bez przepisów.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 3.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Działa idealnie. Dokładnie o to chodziło.
Dzięki wielkie - muszę sobie to dokładnie przeanalizować i będę wiedział na przyszłość. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 21:50 |