- Home
- Categorie
- Coding e Sistemistica
- Coding
- Query difficile
-
Query difficile
Salve a tutti, dovrei realizzare una select molto complessa per me e chiedo aiuto a voi per risolverla, io sto impazzendo.
Ho un portale (tipo paginegialle), l'utente effettua effettua la ricerca di un'azienda secondo vari criteri, uno dei quali è il nome.
Le tabelle coinvolte sono:
AZIENDE (id_azienda, nome),
CATEGORIE(id_categoria, nome_categoria),
SOTTOCATEGORIE(id_sottocategoria, nome_sottocategoria, id_categoria)I risultati della ricerca dovrebbero essere visualizzati per categoria e sottocategoria con il relativo numero di aziende per ogni sottocategoria.
Faccio un esempio semplice:L'utente cerca le aziende il cui nome contenga la parola "STUDIO".
Ed i risultati sono:
LIBERI PROFESSIONISTI (categoria)
AVVOCATI (sottocategoria) 10
(ci sono 10 avvocati con la parola "studio" nel nome)
COMMERCIALISTI 30COMPUTER E INTERNET
CENTRI ASSISTENZA 20
SVILUPPATORI WEB 39Dovrei riuscire ad ottenere questo risultato, ma non ci sto riuscendo, qualcuno saprebbe darmi una mano?
-
Ciao, prima di tutto penso che nella tua spiegazione manchi un dato di collegamento tra AZIENDE e SOTTOCATEGORIE.
Per il resto la tua query la devi fare eseguire per ogni CATEGORIA, usi un COUNT() ed un GROUP BY.
Questa l'ho fatta al volo e potrebbe non essere funzionante, ma potresti usarla come punto di partenza
select count(a.id_azienda) from aziende a
join sottocategorie s on a.id_sottocategoria = s.id_sottocategoria
join categorie c on c.id_categoria = s.id_sottocategoria and id_categoria = X
where lower(nome) like '%studio%'
group by id_sottocategoriecioa