Wpis z mikrobloga

Potrzebuje zbudować pewne zapytanie SQL i jest zbyt złożone jak na moją wiedzę. Upraszczając mam dwie tabele: FIRMY (firmaid, nazwa) oraz FORMULARZE(formid, firmaid) . formularzy jest dużo, a ja chcę zliczyć ile razy wystąpiła w nich jaka firma.

To co mam: "SELECT firma
id, count(*) as liczba FROM formularze GROUP BY firmaid ;" - teraz zlicza mi powtórzenia firmaid, a chciałbym wyświetlić nazwy, czyli zamiast firma_id żeby wyświetlało nazwę odpowiadającą temu id

proszę o pomoc i sory jeśli niejasno tłumacze

#programowanie #sql
  • 4
  • Odpowiedz
SELECT formularze.firmaid , firmy.firmanazwa , count(*) as liczba

FROM formularze JOIN firmy

ON (formularze.firmaid = firmy.firmaid) GROUP BY firma_nazwa ORDER BY liczba DESC;

nie wiem czy to eleganckie rozwiązanie ale działa
  • Odpowiedz
Dziwne, że działa, bo wybierasz formularze.firmaid, a nie grupujesz po tej kolumnie, ani też nie stosujesz do niej funkcji agregacyjnej. No chyba, że MySQL pozwala na takie cuda (i że w nim to robisz)... nie znam się.

  • Odpowiedz