Salve, ho un problema che mi attanaglia da diversi giorni, dunque...ho il database MySQL italia con all'interno 2 tavole :
db_regioni con i seguenti campi :
CREATE TABLE `db_regioni` (
`idregione` int(11) NOT NULL default '0',
`istat` char(2) NOT NULL default '',
`zona` char(3) NOT NULL default '',
`sigla` char(3) NOT NULL default '',
`regione` varchar(50) NOT NULL default '',
`abitanti` varchar(100) NOT NULL default '',
`capoluogo` varchar(100) NOT NULL default '',
PRIMARY KEY (`idregione`)
) ENGINE=InnoDB
con all'interno la lista delle 20 regioni e il
db_comuni con i campi :
CREATE TABLE `db_comuni` (
`regione` int(2) NOT NULL default '0',
`provincia` int(4) NOT NULL default '0',
`idcomune` int(4) NOT NULL default '0',
`comune` varchar(200) NOT NULL default '',
`cap` varchar(5) NOT NULL default '',
`pref` varchar(5) NOT NULL default '',
`catasto` varchar(4) NOT NULL default '',
`istat` varchar(10) NOT NULL default '',
`maschi` int(10) NOT NULL default '0',
`femmine` int(10) NOT NULL default '0',
`famiglie` int(10) NOT NULL default '0',
`abitazioni` int(10) NOT NULL default '0',
`abitanti` varchar(100) NOT NULL default '',
`patrono` varchar(100) NOT NULL default '',
`adsl` char(2) default NULL,
PRIMARY KEY (`idcomune`)
) ENGINE=InnoDB
e all'interno la lista degli 8101 comuni italiani
(in formato sql cosi' potete testarlo in locale ;))
avendo bisogno di estrapolare i dati dalle 2 tabelle restituendomi la seguente tabella temporanea :
+------------+------+-----------+------------+-----------+--------------+
|idregione | zona | regione | nrComuni | Famiglie | Abitazioni |
+------------+------+-----------+------------+-----------+--------------+
13 CEN Abruzzo 305 455564 640209
17 MER Basilicata 131 212918 275599
18 MER Calabria 409 699220 1077764
15 MER Campania 551 1838826 2133346
8 SET Emilia Romagna 341 1638914 1930041
6 SET Friuli-Venezia Giulia 219 496327 593930
12 CEN Lazio 378 1937353 2316582
7 SET Liguria 235 706254 969215
3 SET Lombardia 1546 3595478 4038245
11 CEN Marche 246 545861 660662
14 MER Molise 136 118231 168965
1 SET Piemonte 1206 1779054 2168847
16 MER Puglia 258 1362198 1809632
20 CEN Sardegna 377 570845 764870
19 MER Sicilia 390 1739972 2449366
9 CEN Toscana 287 1377834 1618903
4 SET Trentino-Alto Adige 339 366158 482060
10 CEN Umbria 92 309609 358165
2 SET Valle D'Aosta 74 53237 99144
5 SET Veneto 581 1699235 1970328
+------------+------+-----------+----------+-------------+
ho creato la seguente query :
SELECT
db_regioni.idregione,
db_regioni.zona,
db_regioni.regione,
COUNT(db_comuni.regione) AS nrComuni,
SUM( db_comuni.famiglie ) AS Famiglie,
SUM( db_comuni.abitazioni ) AS Abitazioni
FROM
db_regioni
INNER JOIN
db_comuni
ON
( db_comuni.regione = db_regioni.idregione )
GROUP BY
db_regioni.idregione
ORDER BY db_regioni.regione ASC
fin qui tutto ok, ora avendo bisogno di aggiungere altri dati alla tabella precedente ho creato un'altra query per test:
SELECT
db_regioni.idregione,
db_regioni.zona,
db_regioni.regione,
COUNT(db_comuni.regione) AS ComuniConAdsl,
SUM(db_comuni.famiglie) AS FamiglieConAdsl,
SUM(db_comuni.abitazioni) AS AbitazioniConAdsl
FROM
db_regioni
INNER JOIN
db_comuni
ON
( db_comuni.regione = db_regioni.idregione )
WHERE
db_comuni.adsl = 'SI'
GROUP BY
db_regioni.idregione
ORDER BY
db_regioni.regione ASC
e correttamente la tabella temporanea :
+------------+------+-----------+--------------------+---------------------+-----------------------+
|idregione | zona | regione | ComuniConAdsl | FamiglieConAdsl | AbitazioniConAdsl |
+------------+------+-----------+--------------------+---------------------+-----------------------+
18 MER Calabria 54 212581 325900
1 SET Piemonte 1 3430 3477
+------------+------+-----------+--------------------+---------------------+-----------------------+
il problema arriva ora, come UNISCO le 2 query in modo da ottenere una tabella del seguente formato ?
+------------+------+-----------+-------------+----------+-------------+---------------------+-------------------------+--------------------------------------------------------------
|idregione | zona | regione | nrComuni | Famiglie | Abitazioni | ComuniConAdsl |FamiglieConAdsl | AbitazioniConAdsl |
+------------+------+-----------+-------------+----------+-------------+---------------------+
|idregione | zona | regione | nrComuni | Famiglie | Abitazioni | ComuniConAdsl |FamiglieConAdsl | AbitazioniConAdsl |
13 CEN Abruzzo 305 455564 640209 0 0 0
17 MER Basilicata 131 212918 275599 0 0 0
18 MER Calabria 409 699220 1077764 54 212581 325900
15 MER Campania 551 1838826 2133346 0 0 0
8 SET Emilia Romagna 341 1638914 1930041 0 0 0
6 SET Friuli-Venezia Giulia 219 496327 593930 0 0 0
12 CEN Lazio 378 1937353 2316582 0 0 0
7 SET Liguria 235 706254 969215 0 0 0
3 SET Lombardia 1546 3595478 4038245 72 4500580 257840
11 CEN Marche 246 545861 660662 0 0 0
14 MER Molise 136 118231 168965 0 0 0
1 SET Piemonte 1206 1779054 2168847 1 3430 3477
16 MER Puglia 258 1362198 1809632 0 0 0
20 CEN Sardegna 377 570845 764870 0 0 0
19 MER Sicilia 390 1739972 2449366 0 0 0
9 CEN Toscana 287 1377834 1618903 0 0 0
4 SET Trentino-Alto Adige 339 366158 482060 0 0 0
10 CEN Umbria 92 309609 358165 0 0 0
2 SET Valle D'Aosta 74 53237 99144 0 0 0
5 SET Veneto 581 1699235 1970328 0 0 0
GRAZIE 1000 per i suggerimenti