Il giorno venerdì 11 gennaio 2013 11:00:35 UTC+1, r ha scritto:
> Il giorno venerdì 11 gennaio 2013 00:52:53 UTC+1, Maurizio Borrelli ha scritto:
> > Il giorno giovedì 10 gennaio 2013 23:54:28 UTC+1, r ha scritto: > Il giorno giovedì 10 gennaio 2013 23:25:43 UTC+1, r ha scritto: > ovviamente non è strettamente necessario che le tabella abbiano stessa identica struttura ... importante è che abbiano almeno i campi (con stessa intestazione) sui quali si vuole unire i dati ... Ciao r, l'intestazione dei campi non conta, possono essere anche diverse. Quello che conta e` la posizione e il tipo di dato. Cosi` almeno e` la logica di funzionamento delle query di unione sql. Infatti e` previsto che si usino alias solo nella prima SELECT perche` quelle saranno le intestazioni dei campi della vista risultante, indipendentemente dai nomi dei campi delle SELECT successive. -- Ciao! Maurizio
> queste:
> SELECT tbl_1.colonna1, tbl_1.colonna2, tbl_1.colonna3, tbl_1.colonna4
> FROM `C:\test\S.xlsx`.tbl_1 tbl_1
> UNION ALL
> SELECT tbl_2.colonna1, tbl_2.colonna_pippo, tbl_2.colonna3, tbl_2.colonna4
> FROM `C:\test\S.xlsx`.tbl_2 tbl_2
> e questa
> SELECT tbl_1.colonna1, tbl_1.colonna2, tbl_1.colonna3, tbl_1.colonna4
> FROM `C:\test\S.xlsx`.tbl_1 tbl_1
> UNION ALL
> SELECT tbl_2.colonna1, tbl_2.colonna2, tbl_2.colonna3, tbl_2.colonna4
> FROM `C:\test\S.xlsx`.tbl_2 tbl_2
> funzionano entrambe ... le due tabelle sono coì intestate:
> tbl_1
> colonna1
> colonna2
> colonna3
> colonna4
> tbl_2
> colonna1
> colonna_pippo
> colonna2
> colonna3
> colonna4
Ciao r,
non e` molto diverso da quel che ho scritto io. Riassumendo:
- I nomi dei campi della vista o tabella risultante saranno quelli della prima SELECT. Quindi meglio, dico io, assegnare degli alias coerenti con i nostri propositi. Certo, non e` obbligatorio.
- Quel che conta e`
1. stesso numero di campi in ogni SELECT. Qundi meglio evitare SELECT * che non si sa mai.
2. conta la posizione e il tipo di dato. Ovvero campi con lo stesso nome ma posizione diversa non si allineano da soli. Campi con la stessa posizione ma tipo di dato diverso (esempio stringa invece di numero) possono impedire l'esecuzione della query. (Con fogli di Excel la questione e` meno rigida che con un database).
3. Io non userei UNION ALL ma UNION, cosi` mi risparmio i record duplicati, ma questo e` funzione dello scopo che ci si prefigge.
--
Ciao!
Maurizio