numero di risultati estratti

sto usando una query del genere per estrarre le tipologie dal database

SELECT `t`.`tid`, `t`.`label`, `c`.`label` AS `cil` FROM `#__tipologies` AS `t` JOIN `#__categories` AS `c` ON `c`.`cid`=%d

Dovrei modificare la query per ritornare il numero di strutture che hanno l'id della tipologia ( E della categoria ) scelti, come faccio ?

ora vado a dare un'occhiata a mysql.com

:bye:

inviato 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

potresti fare un esempio?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

mmh

allora ci sono tre tabelle :

strutture

categorie

tipologie

scelgo man mano cosa visualizzare :

scelta categoria -> elenco tipologie per ogni tipologia dovrei scegliere tutte le strutture e mettere il numero di strutture tra parentesi ... farlo con una query aggiuntiva per ogni voce del menu  facile, ma non credo sia performante ...

:bye:

risposto 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

prova con

SELECT ..., COUNT(strutture.nome_struttura) FROM ... JOIN ... WHERE.... GROUP BY (categorie, tipologie)

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Ciao gianni ho modificato la struttura del database.

le tabelle sono queste:

categorie

strutture

tipologie

località

vis_strutture

vis_tipologie

la tabella vis_strutture permette che ogni struttura sia visibile da diverse categorie e tipologie

la tabella vis_tipologie permette che ogni tipologia sia visibile o meno in diverse categorie

sto cercando di scrivere la query che mi permetta di contare le strutture presenti conoscendo solo l'id della categoria ( perchè non conosco l'id della tipologia, visto che non è stata ancora selezionata )

mi dai una manina ?

:bye:

risposto 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

mi ero scordato di scrivere che è anche un problema evitare che tutti i nomi delle tipologie siano ripetuti...

risposto 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

nel caso possa essere d'aiuto

ecco la struttura del database :

CREATE TABLE `categories` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(45) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM;
CREATE TABLE `locations` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(45) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM;
CREATE TABLE `structures` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  `desc` text NOT NULL,
  `contacts` text NOT NULL,
  `services` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM;
CREATE TABLE `tipologies` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(45) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM;
CREATE TABLE `vis_structures` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `structure` int(10) unsigned NOT NULL,
  `category` int(10) unsigned NOT NULL,
  `tipology` int(10) unsigned NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM;
CREATE TABLE `vis_tipologies` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `tipology` int(10) unsigned NOT NULL,
  `category` int(10) unsigned NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM;
risposto 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Gianni ce la fai a darmi una mano?

risposto 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

inizia col scrivere la query che, grazie ad uno o più JOIN, trova tutte le strutture legate a ciascuna categoria. Ovviamente le categorie si ripeteranno, allora modifica la query mettendo GROUP BY category. A questo punto avrai un record per categoria e per sapere quante strutture contiene ti basta un COUNT (structure)

SELECT .... COUNT (structure) ... FROM categories JOIN structures ON .... (JOIN ... ON ...) GROUP BY category

se il legame tra categories e structures è realizzato tramite vis_structures allora la devi mettere nel JOIN

categories JOIN vis_structures ON ... JOIN structures ON ...

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda