pomoc w zapytaniu do wygenerowania wykresu

pomoc w zapytaniu do wygenerowania wykresu
II
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 9
0

Witam. Proszę o wskazówki do tworzenia zapytania które będzie mi potrzebne do wygenerowania wykresu w Chart.js
Potrzebuję tabelkę w której znajdzie się nazwa_kategorii oraz ile (to będzie liczba ofert która jest przypisana do danej kategorii)

Stworzyłem już zapytanie które wyswietla nazwę kategorii oraz 'Ile" ale tylko jeśli istnieje oferta z daną kategoria. Ja potrzebuję listę kategorii i liczbę ofert nawet jeśli kategoria nie jest przypisana do żadnej oferty.
Zapytanie wygląda tak:

Kopiuj
SELECT nazwa_kategorii, count(kategoria) as ile from kategorie, oferty where oferty.kategoria=kategorie.id_kategoria group by kategoria;

A tak wygląda jego wynik:
Przechwytywanie.PNG

W wyniku powinna być np jeszcze kategoria E-commerce z wynikiem 0. i

Tablela kategorie: id_kategoria, nazwa_kategorii

Tabela oferty: id_oferty, tytul, kategoria

Te tabele są połączone kluczem obcym tzn w ofertach jest nr kategorii a nie jej nazwa.

Domyślam sie że pewnie trzeba jakieś podzapytanie stworzyć, proszę o wskazówki

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3902
1

musisz zrobić left joina:

Kopiuj
SELECT 
    nazwa_kategorii
    , count(oferty.kategoria) as ile
from 
    kategorie
    left join  oferty on oferty.kategoria=kategorie.id_kategoria 
group by 
    kategoria;
II
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 9
0

Trochę lepiej bo wyświetliło mi jeszcze jedną kategorię z 0 ofertami. Tych kategorii mam 18, wyników jest 11.
obraz_2020-12-14_121215.png

obraz_2020-12-14_121252.pngscreenshot-20201214121342.png

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3902
2

cały mysql, pozwala grupować po polu którego nie ma w select...

group by kategoria; zmien na group by nazwa_kategorii

II
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 9
0

Zgadza się :) Dziękuję bardzo za pomoc. Zdrowia życzę dobry człowieku :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.