[Soci SLIP] suggerimento SQL

llcfree llcfree a gmail.com
Lun 26 Mar 2012 22:29:13 CEST


Ti faccio un esempio preciso, cosi' magari e' chiaro.

Questa e' la tua prima tabella (puo' avere quante colonne vuoi, e
quante righe (record) vuoi:

  cat tab1.txt
Abetine x1 x2 x3
Pinete y1 y2 y3
Laricete z1 z2 z3
Faggete w1 w2 w3
Quercete k1 k2 k3

Questa e' la tua seconda tabella:
  cat tab2.txt
Abetine Conifere
Faggete Latifoglie
Quercete Latifoglie
Pinete Conifere
Laricete Conifere

sort di entrambe: ordiniamo la prima colonna in ordine alfabetico (la
chiave comune, su cui poi facciamo il join)

  sort -k1,1 tab1.txt > w0
  sort -k1,1 tab2.txt > w1

Poi facciamo il join (se non specifico un parametro, il join e' sulla
prima colonna, la chiave comune):

  join w0 w1 > w2

E voila':

  cat w2
Abetine x1 x2 x3 Conifere
Faggete w1 w2 w3 Latifoglie
Laricete z1 z2 z3 Conifere
Pinete y1 y2 y3 Conifere
Quercete k1 k2 k3 Latifoglie

Vale per la tabellina tab1.txt e vale per la tabellona con 2000 records.
E se i record sono solo 2000, si fa in pochi secondi. Se vuoi, mandami
le tabelle e te lo faccio io.

Sicuramente c'e' un'operazioone di join in mysql, visto che join e
project sono le due operazioni fondamentali di qualsiasi database
relazionale (sql e' il linguaggio dei database relazionali, "quasi"
standard, ma non standard, come vedi, visto che access e mysql lo
implementano in modo diverso).

Loredana

On Mon, 2012-03-26 at 22:04 +0200, llcfree wrote:
> On Mon, 2012-03-26 at 21:29 +0200, Mauro Mosso wrote:
> 
> > Va beh i PFT sono semplicemente i Piani Forestali Territoriali, che
> > hanno la suddivisione in categorie molto specifiche che io devo
> > raggruppare.
> 
> > Avendo una tabella con 2.000 record in cui c'č un campo CATEGORIE con
> > all'interno Abetine, Pinete, Laricete, Faggete, Quercete, etc etc,
> > 
> > Ho aggiunto un campo che si chiama CLASSE_ACC, dove vado a mettere
> > Conifere per Abetine, Pinete e Laricete e Latifoglie per Faggete e
> > Quercete.
> > 
> > Ho un'altra tabella (TAB2) dove ho scritto che:
> > Abetine    Conifere
> > Faggete   Latifoglie
> > Quercete Latifoglie
> > Pinete     Conifere
> > Laricete   Conifere
> > 
> > Ora da linea di comando posso fare e funziona:
> > 
> > UPDATE `mva`.`pft_studio_1` SET `CLASSE_ACC` = 'Conifere' WHERE
> > `pft_studio_1`.`CATEGORIA` = 'Abetine
> > 
> > e cosė via per tutte le voci di CATEGORIA, ma siccome sono ben 25 le
> > categorie, volevo cercare un modo di farglielo fare prendendo i dati
> > dalla tabella TAB2.
> 
> Il modo e' fare un join delle tue tabelle, non modificarle una ad una.
> Credimi :) 
> 
> Loredana
> 
> _______________________________________________
> Soci mailing list
> Soci a mail.pinerolo.linux.it
> https://liszt.softwareliberopinerolo.org/vecchiamlsoci/





Maggiori informazioni sulla lista Soci