From michel a ziobudda.net Thu Mar 1 00:44:23 2007 From: michel a ziobudda.net (Michel) Date: Thu Mar 1 01:09:56 2007 Subject: [Db] [MySQL] Inserimento in DECIMAL che sballa Message-ID: <45E613D7.7080603@ziobudda.net> Ciao all. In una tabella ho un campo cosi' definito: VALORE DECIMAL(10,10) Ora vorrei capire perche' il semplice: insert into tabella(valore) values(1.01) mi fa sballare i conti: se faccio un select VALORE al posto di 1.01 ho 0.999999999999 M. -- Michel 'ZioBudda' Morelli michel@ziobudda.net Consulenza sistemistica in ambito OpenSource. Sviluppo applicazioni web dinamiche (LAMP+Ajax) Telefono: +39-3939890025 -- Fax: +39-0291390660 http://www.ziobudda.net ICQ: 58351764 http://www.ziobuddalabs.it Skype: zio_budda http://www.ajaxblog.it MSN: michel@ziobuddalabs.it From cesare a ngi.it Thu Mar 1 09:16:37 2007 From: cesare a ngi.it (Cesare D'Amico) Date: Thu Mar 1 09:40:42 2007 Subject: [Db] [MySQL] Inserimento in DECIMAL che sballa In-Reply-To: <45E613D7.7080603@ziobudda.net> References: <45E613D7.7080603@ziobudda.net> Message-ID: <200703010916.37162.cesare@ngi.it> Alle 00:44, giovedì 01 marzo 2007, Michel ha scritto: > VALORE DECIMAL(10,10) > > Ora vorrei capire perche' il semplice: > > insert into tabella(valore) values(1.01) > > mi fa sballare i conti: se faccio un select VALORE al posto di 1.01 > ho 0.999999999999 Secondo me perché non hai lasciato nessun "posto" per gli interi: decimal(10,10) è un numero di 10 cifre di cui 10 decimali... prova almeno con decimal(11, 10) e vedrai che 1.01 te lo prende. Se in un decimal metti un valore troppo grande rispetto alla rappresentazione definita, ti inserisce automaticamente il massimo valore rappresentabile. -- Cesare D'Amico | Gruppo Volta Area tecnica | Web & Mkt Solutions Tel: 045 21 000 84 | Via Leida 8 - Verona Fax: 045 21 000 85 | http://www.gruppovolta.it From michel a ziobudda.net Thu Mar 1 09:29:01 2007 From: michel a ziobudda.net (Michel) Date: Thu Mar 1 09:54:30 2007 Subject: [Db] [MySQL] Inserimento in DECIMAL che sballa In-Reply-To: <200703010916.37162.cesare@ngi.it> References: <45E613D7.7080603@ziobudda.net> <200703010916.37162.cesare@ngi.it> Message-ID: <45E68ECD.5090201@ziobudda.net> Cesare D'Amico ha scritto: > Alle 00:44, giovedì 01 marzo 2007, Michel ha scritto: > >> VALORE DECIMAL(10,10) >> >> Ora vorrei capire perche' il semplice: >> >> insert into tabella(valore) values(1.01) >> >> mi fa sballare i conti: se faccio un select VALORE al posto di 1.01 >> ho 0.999999999999 >> > > Secondo me Secondo me perche' devo smettere di lavorare alle 2 di notte.... Che cretino che sono. ciao -- Michel 'ZioBudda' Morelli michel@ziobudda.net Consulenza sistemistica in ambito OpenSource. Sviluppo applicazioni web dinamiche (LAMP+Ajax) Telefono: +39-3939890025 -- Fax: +39-0291390660 http://www.ziobudda.net ICQ: 58351764 http://www.ziobuddalabs.it Skype: zio_budda http://www.ajaxblog.it MSN: michel@ziobuddalabs.it From marcello a vezz.it Fri Mar 9 17:11:46 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Fri Mar 9 17:38:52 2007 Subject: [Db] query facile ma... Message-ID: <45F18742.2080606@vezz.it> Ciao a tutti, ho questo problema ma mi sto perdendo... ho una tabella di utenti, con id e altre robe. ho una tabella di accessi, con id, data e riferimento dell'utente che ha fatto accesso. Ora.. io vorrei una query che mi ritorna un elenco degli utenti che NON hanno fatto accesso in un determinato giorno... select utenti.id,nome,count(utenti.id) as quanti from utenti left join accessi on utenti.id=accessi.rif_socio where accessi.data='2007-01-01' group by soci.id Questa mi ritorna 1 record per utente e quanti accessi ha fatto quel giorno... e va bene... ma gli altri come li tiro fuori con una query secca? Saluti Marcello From marcello a vezz.it Fri Mar 9 17:32:54 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Fri Mar 9 18:00:01 2007 Subject: [Db] query facile ma... In-Reply-To: <45F18742.2080606@vezz.it> References: <45F18742.2080606@vezz.it> Message-ID: <45F18C36.9050300@vezz.it> Marcello Vezzelli ha scritto: > Ciao a tutti, > ho questo problema ma mi sto perdendo... Eh, sei un incompetente! :) > > > Questa mi ritorna 1 record per utente e quanti accessi ha fatto quel > giorno... e va bene... ma gli altri come li tiro fuori con una query > secca? select utenti.id,utenti.nome,accessi.rif_utente FROM utenti left JOIN ((select * from accessi where data='2007-01-31') as tacc) on utenti.id=tacc.rif_utente WHERE tacc.rif_utente IS NULL E prima di scrivere in ml pensaci un po' su! Ciao Marcello From michel a ziobudda.net Fri Mar 9 17:34:35 2007 From: michel a ziobudda.net (Michel) Date: Fri Mar 9 18:01:38 2007 Subject: [Db] query facile ma... In-Reply-To: <45F18C36.9050300@vezz.it> References: <45F18742.2080606@vezz.it> <45F18C36.9050300@vezz.it> Message-ID: <45F18C9B.5090501@ziobudda.net> BOOONIIIIIIIIIIIIIII M. Marcello Vezzelli ha scritto: > Marcello Vezzelli ha scritto: >> Ciao a tutti, >> ho questo problema ma mi sto perdendo... > > Eh, sei un incompetente! :) >> >> >> Questa mi ritorna 1 record per utente e quanti accessi ha fatto quel >> giorno... e va bene... ma gli altri come li tiro fuori con una query >> secca? > > select utenti.id,utenti.nome,accessi.rif_utente FROM utenti left JOIN > ((select * from accessi where data='2007-01-31') as tacc) on > utenti.id=tacc.rif_utente WHERE tacc.rif_utente IS NULL > > E prima di scrivere in ml pensaci un po' su! > > Ciao > Marcello > > ------------------------------------------------------------------------ > > _______________________________________________ > Db mailing list > Db@lists.ziobudda.net > http://lists.ziobudda.net/mailman/listinfo/db > -- Michel 'ZioBudda' Morelli michel@ziobudda.net Consulenza sistemistica in ambito OpenSource. Sviluppo applicazioni web dinamiche (LAMP+Ajax) Telefono: +39-3939890025 -- Fax: +39-0291390660 http://www.ziobudda.net ICQ: 58351764 http://www.ziobuddalabs.it Skype: zio_budda http://www.ajaxblog.it MSN: michel@ziobuddalabs.it From lfalvo a logos.net Fri Mar 9 17:38:35 2007 From: lfalvo a logos.net (Luca Falvo) Date: Fri Mar 9 18:05:44 2007 Subject: [Db] query facile ma... In-Reply-To: <45F18C9B.5090501@ziobudda.net> References: <45F18742.2080606@vezz.it> <45F18C36.9050300@vezz.it> <45F18C9B.5090501@ziobudda.net> Message-ID: <6.2.1.2.2.20070309173752.0357afd8@mail.logos.net> At 17:34 09/03/2007, you wrote: >BOOONIIIIIIIIIIIIIII > >M. > >Marcello Vezzelli ha scritto: >Marcello Vezzelli ha scritto: orsù Marcello Vezzelli, non vorrai mica offendere Marcello Vezzelli! ;) ciao e buon fine settimana a tutti! From marcello a vezz.it Fri Mar 9 17:39:15 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Fri Mar 9 18:06:21 2007 Subject: [Db] query facile ma... In-Reply-To: <45F18C9B.5090501@ziobudda.net> References: <45F18742.2080606@vezz.it> <45F18C36.9050300@vezz.it> <45F18C9B.5090501@ziobudda.net> Message-ID: <45F18DB3.9060404@vezz.it> Michel ha scritto: > BOOONIIIIIIIIIIIIIII Dai sono io che mi rispondo da solo!! :) > > M. > > > Marcello Vezzelli ha scritto: >> Marcello Vezzelli ha scritto: >>> Ciao a tutti, >>> ho questo problema ma mi sto perdendo... >> >> Eh, sei un incompetente! :) >>> >>> >>> Questa mi ritorna 1 record per utente e quanti accessi ha fatto quel >>> giorno... e va bene... ma gli altri come li tiro fuori con una query >>> secca? >> >> select utenti.id,utenti.nome,accessi.rif_utente FROM utenti left JOIN >> ((select * from accessi where data='2007-01-31') as tacc) on >> utenti.id=tacc.rif_utente WHERE tacc.rif_utente IS NULL >> >> E prima di scrivere in ml pensaci un po' su! >> >> Ciao >> Marcello >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Db mailing list >> Db@lists.ziobudda.net >> http://lists.ziobudda.net/mailman/listinfo/db >> > > ------------------------------------------------------------------------ > > _______________________________________________ > Db mailing list > Db@lists.ziobudda.net > http://lists.ziobudda.net/mailman/listinfo/db > From AlberT a superalbert.it Fri Mar 9 17:48:07 2007 From: AlberT a superalbert.it (Emiliano Gabrielli (aka AlberT)) Date: Fri Mar 9 18:16:29 2007 Subject: [Db] query facile ma... In-Reply-To: <45F18C9B.5090501@ziobudda.net> References: <45F18742.2080606@vezz.it> <45F18C36.9050300@vezz.it> <45F18C9B.5090501@ziobudda.net> Message-ID: <200703091748.07798.AlberT@superalbert.it> On Friday 09 March 2007 17:34, Michel wrote: > BOOONIIIIIIIIIIIIIII ROOOOOOTFL :-) -- From cristiano a verondini.it Fri Mar 9 17:49:34 2007 From: cristiano a verondini.it (Cristiano Verondini) Date: Fri Mar 9 18:19:17 2007 Subject: [Db] query facile ma... References: <45F18742.2080606@vezz.it> <45F18C36.9050300@vezz.it><45F18C9B.5090501@ziobudda.net> <45F18DB3.9060404@vezz.it> Message-ID: <005e01c7626b$06eb5fe0$6301a8c0@IdeaFutura.local> >> Michel ha scritto: >>> BOOONIIIIIIIIIIIIIII >> Dai sono io che mi rispondo da solo!! >> :) E allora vedi di trattarTI meglio! :P Cris -- Cristiano Verondini http://www.verondini.it --- [ICQ: 114 190] From marcello a vezz.it Fri Mar 9 18:05:23 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Fri Mar 9 18:32:29 2007 Subject: [Db] query facile ma... In-Reply-To: <005e01c7626b$06eb5fe0$6301a8c0@IdeaFutura.local> References: <45F18742.2080606@vezz.it> <45F18C36.9050300@vezz.it><45F18C9B.5090501@ziobudda.net> <45F18DB3.9060404@vezz.it> <005e01c7626b$06eb5fe0$6301a8c0@IdeaFutura.local> Message-ID: <45F193D3.4010603@vezz.it> Cristiano Verondini ha scritto: > >>> BOOONIIIIIIIIIIIIIII > Dai sono io che mi rispondo da solo!! >>> :) > > E allora vedi di trattarTI meglio! :P Ok è venerdì e sono le 17:55, un po' di autoflame ci stava :D Quel che posso dire è che sicuramente avrei cazziato anch'io uno che rispondeva così... infatti mi sono effettivamente dato dell'imbecille da solo a voce! ;) Saluti Marcello From michel a ziobudda.net Sat Mar 10 01:09:21 2007 From: michel a ziobudda.net (Michel) Date: Sat Mar 10 01:36:28 2007 Subject: [Db] Copiare il contenuto di una tupla in un'altra tabella Message-ID: <45F1F731.1020903@ziobudda.net> Ciao all. Per un applicativo che sto realizzando quando l'utente mi conferma la cancellazione di un dato io non voglio che il dato venga realmente cancellato, ma solo che i suoi riferimenti all'interno del DB (Mysql) vengano spostati da una tabella ad un altra. Questo spostamento (al posto di un normale campo "stato") è motivato dal fatto che non voglio tenere "dati" morti all'interno delle tabelle, rendendole cosi' piu' veloci. Ora: questo "spostamento" lo posso realizzare facendo una "INSERT INTO tabellaMorti select * from tabellaVivi where id_dato = X". Ma questo mi obbliga ad avare le stesse colonne (= gli stessi campi) sia in tabellaVivi che in tabellaMorti, mentre io in tabellaMorti ho un campo in piu' che mi dice quando il record ci è finito. Quindi questa tipo di insert mi ritorna un errore e non la posso utilizzare. Ma non vorrei neppure dover prelevare i dati da cancellare dalla tabellaVivi, poi sul server PHP costruire un query del tipo "insert into tabellaMorti(campo1, campo2, campo3) values(vivi1, vivi2, vivi3), eseguirla e poi... C'e' un modo piu' veloce per fare questa cosa con MySQL ? Grazie e ciao. -- Michel 'ZioBudda' Morelli michel@ziobudda.net Consulenza sistemistica in ambito OpenSource. Sviluppo applicazioni web dinamiche (LAMP+Ajax) Telefono: +39-3939890025 -- Fax: +39-0291390660 http://www.ziobudda.net ICQ: 58351764 http://www.ziobuddalabs.it Skype: zio_budda http://www.ajaxblog.it MSN: michel@ziobuddalabs.it From cristiano a verondini.it Sat Mar 10 18:22:12 2007 From: cristiano a verondini.it (Cristiano Verondini) Date: Sat Mar 10 18:49:32 2007 Subject: [Db] Copiare il contenuto di una tupla in un'altra tabella In-Reply-To: <45F1F731.1020903@ziobudda.net> References: <45F1F731.1020903@ziobudda.net> Message-ID: <7F16B4CC-81C2-474D-9C98-3001D4974CE7@verondini.it> On 10/mar/07, at 01:09, Michel wrote: > Ora: questo "spostamento" lo posso realizzare facendo una "INSERT > INTO tabellaMorti select * from tabellaVivi where id_dato = X". Ma > questo mi obbliga ad avare le stesse colonne (= gli stessi campi) > sia in tabellaVivi che in tabellaMorti, mentre io in tabellaMorti > ho un campo in piu' che mi dice quando il record ci è finito. > Quindi questa tipo di insert mi ritorna un errore e non la posso > utilizzare. Sicuro che sia così? INSERT INTO tbl2 (field1, field2, ...) SELECT f1, f2, ... FROM ... -- Cristiano Verondini http://www.verondini.it --- [ICQ 114 190] From michel a ziobudda.net Sun Mar 11 01:11:34 2007 From: michel a ziobudda.net (michel) Date: Sun Mar 11 01:36:34 2007 Subject: [Db] Copiare il contenuto di una tupla in un'altra tabella In-Reply-To: <7F16B4CC-81C2-474D-9C98-3001D4974CE7@verondini.it> References: <45F1F731.1020903@ziobudda.net> <7F16B4CC-81C2-474D-9C98-3001D4974CE7@verondini.it> Message-ID: <45F34936.4030700@ziobudda.net> Cristiano Verondini ha scritto: > Sicuro che sia così? > > INSERT INTO tbl2 (field1, field2, ...) SELECT f1, f2, ... FROM ... Funziona anche cosi', ma come dicevo nella mia precedente email devo scrivere tutti i campi che voglio copiare, sia nella insert che nella select. Io volevo un modo veloce per non scrivermeli per forza tutti, due volte. Forse ho trovato con INTO OUTFILE. Grazie e ciao M. From dierre a dierrelabs.org Sun Mar 11 02:15:20 2007 From: dierre a dierrelabs.org (DierRe) Date: Sun Mar 11 02:42:42 2007 Subject: [Db] Copiare il contenuto di una tupla in un'altra tabella In-Reply-To: <45F34936.4030700@ziobudda.net> References: <45F1F731.1020903@ziobudda.net> <7F16B4CC-81C2-474D-9C98-3001D4974CE7@verondini.it> <45F34936.4030700@ziobudda.net> Message-ID: <2f5f89560703101715p7d7482c8gc84f49e4afbd9c74@mail.gmail.com> Il 11/03/07, michel ha scritto: > > Cristiano Verondini ha scritto: > > Sicuro che sia così? > > > > INSERT INTO tbl2 (field1, field2, ...) SELECT f1, f2, ... FROM ... > > Funziona anche cosi', ma come dicevo nella mia precedente email devo > scrivere tutti i campi che voglio copiare, sia nella insert che nella > select. Io volevo un modo veloce per non scrivermeli per forza tutti, > due volte. > > Forse ho trovato con INTO OUTFILE. > > Grazie e ciao > > M. > > _______________________________________________ > Db mailing list > Db@lists.ziobudda.net > http://lists.ziobudda.net/mailman/listinfo/db > E se usi un timestamp automatico? Così non hai bisogno di inserirlo. Però non so se funziona. Il modo in cui hai scritto la query non l'avevo mai sentito a dir il vero, però non è possibile concatenarci un ulteriore campo? -- www . dierrelabs . org -------------- parte successiva -------------- Un allegato HTML è stato rimosso... URL: http://lists.ziobudda.net/pipermail/db/attachments/20070311/b9b5322c/attachment.html From domenico.lorusso a pleiade.it Mon Mar 12 08:46:24 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Mon Mar 12 09:11:06 2007 Subject: [Db] Copiare il contenuto di una tupla in un'altra tabella In-Reply-To: <45F1F731.1020903@ziobudda.net> References: <45F1F731.1020903@ziobudda.net> Message-ID: <45F50550.6040304@pleiade.it> Michel ha scritto: > Ciao all. > > Per un applicativo che sto realizzando quando l'utente mi conferma > la cancellazione di un dato io non voglio che il dato venga realmente > cancellato, ma solo che i suoi riferimenti all'interno del DB (Mysql) > vengano spostati da una tabella ad un altra. Questo spostamento (al > posto di un normale campo "stato") è motivato dal fatto che non voglio > tenere "dati" morti all'interno delle tabelle, rendendole cosi' piu' > veloci. insert into tabellaMorti select a.*, now() from tabellaVivi as a Così? Funziona a patto che il campo in più sia all'inizio o alla fine :-) -- Domenico L. icq: 645 44 861 per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From michel a ziobudda.net Mon Mar 12 09:17:16 2007 From: michel a ziobudda.net (Michel) Date: Mon Mar 12 09:44:50 2007 Subject: [Db] Copiare il contenuto di una tupla in un'altra tabella In-Reply-To: <45F50550.6040304@pleiade.it> References: <45F1F731.1020903@ziobudda.net> <45F50550.6040304@pleiade.it> Message-ID: <45F50C8C.70200@ziobudda.net> Domenico L. ha scritto: > insert into tabellaMorti select a.*, now() from tabellaVivi as a > > Così? > > Funziona a patto che il campo in più sia all'inizio o alla fine :-) Mitico... Non l'ho ancora provato, ma se come dici tu funziona, mi hai salvato. Grazie. -- Michel 'ZioBudda' Morelli michel@ziobudda.net Consulenza sistemistica in ambito OpenSource. Sviluppo applicazioni web dinamiche (LAMP+Ajax) Telefono: +39-3939890025 -- Fax: +39-0291390660 http://www.ziobudda.net ICQ: 58351764 http://www.ziobuddalabs.it Skype: zio_budda http://www.ajaxblog.it MSN: michel@ziobuddalabs.it From domenico.lorusso a pleiade.it Mon Mar 12 09:29:31 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Mon Mar 12 09:54:15 2007 Subject: [Db] Copiare il contenuto di una tupla in un'altra tabella In-Reply-To: <45F50C8C.70200@ziobudda.net> References: <45F1F731.1020903@ziobudda.net> <45F50550.6040304@pleiade.it> <45F50C8C.70200@ziobudda.net> Message-ID: <45F50F6B.5000006@pleiade.it> Michel ha scritto: > > Domenico L. ha scritto: >> insert into tabellaMorti select a.*, now() from tabellaVivi as a >> >> Così? >> >> Funziona a patto che il campo in più sia all'inizio o alla fine :-) > > Mitico... > Non l'ho ancora provato, ma se come dici tu funziona, mi hai salvato. > Grazie. Prego :-) Devo dire che la insert non l'ho provata neppure io però è un approccio standard... :-) Occhio però che se cambi un campo devi cambiarlo anche dalle altre parti.. alla lunga non so se è conveniente... Ciao -- Domenico L. icq: 645 44 861 per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From cristiano a verondini.it Mon Mar 12 12:05:23 2007 From: cristiano a verondini.it (Cristiano Verondini) Date: Mon Mar 12 12:34:59 2007 Subject: [Db] Copiare il contenuto di una tupla in un'altra tabella References: <45F1F731.1020903@ziobudda.net><7F16B4CC-81C2-474D-9C98-3001D4974CE7@verondini.it> <45F34936.4030700@ziobudda.net> Message-ID: <00ba01c76496$5840eb30$6301a8c0@IdeaFutura.local> >> INSERT INTO tbl2 (field1, field2, ...) SELECT f1, f2, ... FROM > Funziona anche cosi', ma come dicevo nella mia precedente email devo > scrivere tutti i campi che voglio copiare, sia nella insert che nella > select. Io volevo un modo veloce per non scrivermeli per forza tutti, > due volte. Trovo sbagliato in linea di principio il non dover scrivere i nomi dei campi. Porta sempre ad errori, così come le 'SELECT *'. Nel mio codice sono espressamente vietate! :) Cris -- Cristiano Verondini http://www.verondini.it --- [ICQ: 114 190] From cristiano a verondini.it Mon Mar 12 12:06:14 2007 From: cristiano a verondini.it (Cristiano Verondini) Date: Mon Mar 12 12:35:53 2007 Subject: [Db] Copiare il contenuto di una tupla in un'altra tabella References: <45F1F731.1020903@ziobudda.net> <45F50550.6040304@pleiade.it><45F50C8C.70200@ziobudda.net> <45F50F6B.5000006@pleiade.it> Message-ID: <00c201c76496$771e1280$6301a8c0@IdeaFutura.local> > Occhio però che se cambi un campo devi cambiarlo anche dalle altre > parti.. alla lunga non so se è conveniente... Questo è il punto ... la differenza fra scrivere semplicemente codice che funziona e codice che sia corretto e facile da manutenere :) Cris -- Cristiano Verondini http://www.verondini.it --- [ICQ: 114 190] From domenico.lorusso a pleiade.it Mon Mar 12 12:33:50 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Mon Mar 12 12:58:37 2007 Subject: [Db] Copiare il contenuto di una tupla in un'altra tabella In-Reply-To: <00c201c76496$771e1280$6301a8c0@IdeaFutura.local> References: <45F1F731.1020903@ziobudda.net> <45F50550.6040304@pleiade.it><45F50C8C.70200@ziobudda.net> <45F50F6B.5000006@pleiade.it> <00c201c76496$771e1280$6301a8c0@IdeaFutura.local> Message-ID: <45F53A9E.3000702@pleiade.it> Cristiano Verondini ha scritto: >> Occhio però che se cambi un campo devi cambiarlo anche dalle altre >> parti.. alla lunga non so se è conveniente... > > Questo è il punto ... la differenza fra scrivere semplicemente > codice che funziona e codice che sia corretto e facile da manutenere :) concordo con te... prime mezz'ora al corso sql di oracle, mai usare i select * Va anche detto che una tabella di archivio eliminati dovrebbe sempre essere la copia speculare della tabella di produzione. Se questo punto viene a mancare il db sta andando a carte e quarantotto... ciaps -- Domenico L. icq: 645 44 861 per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From cristiano a verondini.it Mon Mar 12 12:31:24 2007 From: cristiano a verondini.it (Cristiano Verondini) Date: Mon Mar 12 13:01:01 2007 Subject: [Db] Copiare il contenuto di una tupla in un'altra tabella References: <45F1F731.1020903@ziobudda.net> <45F50550.6040304@pleiade.it><45F50C8C.70200@ziobudda.net> <45F50F6B.5000006@pleiade.it><00c201c76496$771e1280$6301a8c0@IdeaFutura.local> <45F53A9E.3000702@pleiade.it> Message-ID: <00d601c76499$fb369260$6301a8c0@IdeaFutura.local> > Va anche detto che una tabella di archivio eliminati dovrebbe sempre > essere la copia speculare della tabella di produzione. > > Se questo punto viene a mancare il db sta andando a carte e > quarantotto... Certo, ma come sicuramente sai, quando si arriva alle applicazioni reali le remote possibilità si trasformano in assolute certezze! :P Cris -- Cristiano Verondini http://www.verondini.it --- [ICQ: 114 190] From max a linuxtime.it Mon Mar 12 12:40:43 2007 From: max a linuxtime.it (Massimiliano Marini) Date: Mon Mar 12 13:08:22 2007 Subject: [Db] Copiare il contenuto di una tupla in un'altra tabella In-Reply-To: <00d601c76499$fb369260$6301a8c0@IdeaFutura.local> References: <45F1F731.1020903@ziobudda.net> <45F50550.6040304@pleiade.it> <45F50C8C.70200@ziobudda.net> <45F50F6B.5000006@pleiade.it> <00c201c76496$771e1280$6301a8c0@IdeaFutura.local> <45F53A9E.3000702@pleiade.it> <00d601c76499$fb369260$6301a8c0@IdeaFutura.local> Message-ID: <20070312124043.f2ee3d4a.max@linuxtime.it> Ciao Cristiano, > Certo, ma come sicuramente sai, quando si arriva alle > applicazioni reali le remote possibilità si trasformano in assolute > certezze! :P Che saggezza! :)) -- Massimiliano Marini - http://www.linuxtime.it/massimilianomarini/ "It's easier to invent the future than to predict it." -- Alan Kay From cristiano a verondini.it Mon Mar 12 12:42:37 2007 From: cristiano a verondini.it (Cristiano Verondini) Date: Mon Mar 12 13:12:13 2007 Subject: [Db] Copiare il contenuto di una tupla in un'altra tabella References: <45F1F731.1020903@ziobudda.net> <45F50550.6040304@pleiade.it><45F50C8C.70200@ziobudda.net> <45F50F6B.5000006@pleiade.it><00c201c76496$771e1280$6301a8c0@IdeaFutura.local><45F53A9E.3000702@pleiade.it><00d601c76499$fb369260$6301a8c0@IdeaFutura.local> <20070312124043.f2ee3d4a.max@linuxtime.it> Message-ID: <00e001c7649b$8c5a38e0$6301a8c0@IdeaFutura.local> >> Certo, ma come sicuramente sai, quando si arriva alle >> applicazioni reali le remote possibilità si trasformano in assolute >> certezze! :P > Che saggezza! :)) Provata sulla mia pelle *ogni* volta! :P Cris -- Cristiano Verondini http://www.verondini.it --- [ICQ: 114 190] From michel a ziobudda.net Tue Mar 13 11:29:08 2007 From: michel a ziobudda.net (Michel) Date: Tue Mar 13 11:56:55 2007 Subject: [Db] Registrare gli eventi Message-ID: <45F67CF4.2070200@ziobudda.net> Scusate per il cross, ma magari qualcuno nella ML del PHP ha gia' risolto una situazione analoga. Allora: devo registrare degli eventi e per eventi intendo le operazioni dell'utente (ha cancellato l'elemento X, ha settato di vedere l'elemento X se succede Z, ha visto la pagina Y). Questo perche' l'admin del sito deve poter vedere cosa è successo in ogni momento. Ora: quale è il modo migliore per registrare questi eventi ? Un db per ogni tipo di evento ? Un db per gli eventi in generale con N colonne ? Un db per gli eventi con una colonna contenente i dati che mi interessano ? (il contenuto potrebbe essere un serialize() di $_REQUEST+$_SESSION ad esempio). Grazie. M. -- Michel 'ZioBudda' Morelli michel@ziobudda.net Consulenza sistemistica in ambito OpenSource. Sviluppo applicazioni web dinamiche (LAMP+Ajax) Telefono: +39-3939890025 -- Fax: +39-0291390660 http://www.ziobudda.net ICQ: 58351764 http://www.ziobuddalabs.it Skype: zio_budda http://www.ajaxblog.it MSN: michel@ziobuddalabs.it From ml a tassoman.com Tue Mar 13 23:06:13 2007 From: ml a tassoman.com (Tassoman (mailing)) Date: Tue Mar 13 23:34:32 2007 Subject: [Db] Registrare gli eventi In-Reply-To: <45F67CF4.2070200@ziobudda.net> References: <45F67CF4.2070200@ziobudda.net> Message-ID: <1173823573.6085.0.camel@localhost> Il giorno mar, 13/03/2007 alle 11.29 +0100, Michel ha scritto: > Allora: devo registrare degli eventi e per eventi intendo le operazioni > dell'utente (ha cancellato l'elemento X, ha settato di vedere l'elemento > X se succede Z, ha visto la pagina Y). Questo perche' l'admin del sito > deve poter vedere cosa è successo in ogni momento. Trattandosi di un log, scriverei semplicemente un file di testo. -- Blogging humanum est, Tassoman ovest. http://blog.tassoman.com From michel a ziobudda.net Wed Mar 14 00:45:33 2007 From: michel a ziobudda.net (Michel) Date: Wed Mar 14 01:13:27 2007 Subject: [Db] Registrare gli eventi In-Reply-To: <1173823573.6085.0.camel@localhost> References: <45F67CF4.2070200@ziobudda.net> <1173823573.6085.0.camel@localhost> Message-ID: <45F7379D.8050606@ziobudda.net> Tassoman (mailing) ha scritto: > Il giorno mar, 13/03/2007 alle 11.29 +0100, Michel ha scritto: > > >> Allora: devo registrare degli eventi e per eventi intendo le operazioni >> dell'utente (ha cancellato l'elemento X, ha settato di vedere l'elemento >> X se succede Z, ha visto la pagina Y). Questo perche' l'admin del sito >> deve poter vedere cosa è successo in ogni momento. >> > > Trattandosi di un log, scriverei semplicemente un file di testo. > non è un log. Su quei dati poi ci dovro' fare delle operazioni, tra cui quella di mostrare a video tutto quello che è stato registrato. M. -- Michel 'ZioBudda' Morelli michel@ziobudda.net Consulenza sistemistica in ambito OpenSource. Sviluppo applicazioni web dinamiche (LAMP+Ajax) Telefono: +39-3939890025 -- Fax: +39-0291390660 http://www.ziobudda.net ICQ: 58351764 http://www.ziobuddalabs.it Skype: zio_budda http://www.ajaxblog.it MSN: michel@ziobuddalabs.it From gianiaz a gianiaz.net Sat Mar 17 09:15:33 2007 From: gianiaz a gianiaz.net (Giovanni Battista Lenoci) Date: Sat Mar 17 09:44:01 2007 Subject: [Db] Importare dump di grosse dimensioni Message-ID: <45FBA3A5.9060007@gianiaz.net> Ciao, sto cercando di importare un dump di circa 8mega in formato gzip tramite phpmyadmin, ma ricevo un errore di max_execution_time, anche se nel file read_dump.php metto come prima linea set_time_limit(0). Possono essere problemi di mysql? Posso alzare magari qualche valore di timeout e utilizzo memoria per sistemare? grazie -- gianiaz.net di Giovanni Battista Lenoci P.le Bertacchi 66 23100 Sondrio cell. +39.392.7096936 cell. +39.347.7196482 From marcello a vezz.it Mon Mar 19 13:20:24 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Mon Mar 19 13:48:51 2007 Subject: [Db] query quiz Message-ID: <45FE8008.5010001@vezz.it> Ciao a tutti, ho tre tabelle (e un po' di limiti in sql!) - domande (id, testo) - risposte (id, testo) - utilizzo (id, rif_utente, rif_domanda, rif_risposta,dataora) In domande ho un elenco di domande... in risposte ho un elenco di risposte relative a una certa domanda. In utilizzo ho le risposte che ha dato l'utente. Un utente può rispondere più volte alla stessa domanda. Con questa query conto le domande a cui l'utente ha risposto almeno una volta, e verifico quindi se ha risposto a TUTTE le domande almeno una volta: select count(q.id) from ((select distinct rif_domanda as id from utilizzo where rif_utente=123) as q) Come faccio a ottenere le PRIME RISPOSTE a TUTTE le domande per un certo utente? Mi spiego meglio con un esempio: domande: 1,'domanda 1' 2,'domanda 2' ... risposte: 1,'risposta 1 domanda 1' 2,'risposta 2 domanda 1' 3,'risposta 3 domanda 1' 4,'risposta 1 domanda 2' 5,'risposta 2 domanda 2' ... utilizzo: 1,1,1,2,2007-03-19 10:00:00 // l'utente 1 ha risposto 2 alla domanda 1 1,1,1,3,2007-03-19 10:01:00 // l'utente 1 ha risposto 3 alla domanda 1 1,1,2,4,2007-03-19 10:05:00 // l'utente 1 ha risposto 4 alla domanda 2 1,1,2,5,2007-03-19 10:06:00 // l'utente 1 ha risposto 5 alla domanda 2 ... Voglio ottenere: 1,1,1,2,2007-03-19 10:00:00 // l'utente 1 ha risposto 2 alla domanda 1 1,1,2,4,2007-03-19 10:05:00 // l'utente 1 ha risposto 4 alla domanda 2 Suggerimenti? Ciao Marcello From marcello a vezz.it Mon Mar 19 13:32:49 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Mon Mar 19 14:01:13 2007 Subject: [Db] query quiz In-Reply-To: <45FE8008.5010001@vezz.it> References: <45FE8008.5010001@vezz.it> Message-ID: <45FE82F1.6070408@vezz.it> Marcello Vezzelli ha scritto: > Come faccio a ottenere le PRIME RISPOSTE a TUTTE le domande per un > certo utente? > Suggerimenti? select * from risposte JOIN ( (SELECT * FROM `utilizzo` WHERE rif_utente=1 group by rif_domanda) as q) ON risposte.id=q.rif_risposta ORDER BY q.rif_domanda Ho notato che scrivere una domanda in ml mi fa trovare la risposta da solo :) Saluti Marcello From marcello a vezz.it Mon Mar 19 15:51:36 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Mon Mar 19 16:20:31 2007 Subject: [Db] Importare dump di grosse dimensioni In-Reply-To: <45FBA3A5.9060007@gianiaz.net> References: <45FBA3A5.9060007@gianiaz.net> Message-ID: <45FEA378.60000@vezz.it> Giovanni Battista Lenoci ha scritto: > Ciao, sto cercando di importare un dump di circa 8mega in formato gzip > tramite phpmyadmin, ma ricevo un errore di max_execution_time, anche > se nel file read_dump.php metto come prima linea set_time_limit(0). > > Possono essere problemi di mysql? > > Posso alzare magari qualche valore di timeout e utilizzo memoria per > sistemare? Dopo quanto tempo ti dà errore? Magari prova a fare da console con il client e vedi quanto tempo ci mette, giusto per capire dov'è il problema (sembra in php cmq) Ciao Marcello From gianiaz a gianiaz.net Mon Mar 19 15:53:28 2007 From: gianiaz a gianiaz.net (Giovanni Battista Lenoci) Date: Mon Mar 19 16:22:25 2007 Subject: [Db] Importare dump di grosse dimensioni In-Reply-To: <45FEA378.60000@vezz.it> References: <45FBA3A5.9060007@gianiaz.net> <45FEA378.60000@vezz.it> Message-ID: <45FEA3E8.2030305@gianiaz.net> Marcello Vezzelli ha scritto: > Giovanni Battista Lenoci ha scritto: >> Ciao, sto cercando di importare un dump di circa 8mega in formato >> gzip tramite phpmyadmin, ma ricevo un errore di max_execution_time, >> anche se nel file read_dump.php metto come prima linea >> set_time_limit(0). >> >> Possono essere problemi di mysql? >> >> Posso alzare magari qualche valore di timeout e utilizzo memoria per >> sistemare? > > Dopo quanto tempo ti dà errore? > Magari prova a fare da console con il client e vedi quanto tempo ci > mette, giusto per capire dov'è il problema (sembra in php cmq) > > Ciao > Marcello In effetti da shell ci ha messo circa 20 minuti per 105000 record. Ciao -- gianiaz.net di Giovanni Battista Lenoci P.le Bertacchi 66 23100 Sondrio cell. +39.392.7096936 cell. +39.347.7196482 From marcello a vezz.it Mon Mar 19 15:55:41 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Mon Mar 19 16:24:36 2007 Subject: [Db] Importare dump di grosse dimensioni In-Reply-To: <45FEA3E8.2030305@gianiaz.net> References: <45FBA3A5.9060007@gianiaz.net> <45FEA378.60000@vezz.it> <45FEA3E8.2030305@gianiaz.net> Message-ID: <45FEA46D.4080408@vezz.it> Giovanni Battista Lenoci ha scritto: > In effetti da shell ci ha messo circa 20 minuti per 105000 record. orco can! Mi sembra tantissimo... lo script è fatto con 105000 INSERT INTO? Ho visto che i tempi si riducono drasticamente accodando + record nella stessa insert... se è una cosa da fare spesso, conviene pre processare lo script e adattarlo in questo modo. Ciao Marcello From gianiaz a gianiaz.net Mon Mar 19 16:02:09 2007 From: gianiaz a gianiaz.net (Giovanni Battista Lenoci) Date: Mon Mar 19 16:31:06 2007 Subject: [Db] Importare dump di grosse dimensioni In-Reply-To: <45FEA46D.4080408@vezz.it> References: <45FBA3A5.9060007@gianiaz.net> <45FEA378.60000@vezz.it> <45FEA3E8.2030305@gianiaz.net> <45FEA46D.4080408@vezz.it> Message-ID: <45FEA5F1.6060403@gianiaz.net> Marcello Vezzelli ha scritto: > Giovanni Battista Lenoci ha scritto: >> In effetti da shell ci ha messo circa 20 minuti per 105000 record. > > orco can! > Mi sembra tantissimo... > lo script è fatto con 105000 INSERT INTO? > Ho visto che i tempi si riducono drasticamente accodando + record > nella stessa insert... > se è una cosa da fare spesso, conviene pre processare lo script e > adattarlo in questo modo. > > Ciao > Marcello > Si, è il link al file dei cap-comuni che ho postato sulla ML di php. ciao -- gianiaz.net di Giovanni Battista Lenoci P.le Bertacchi 66 23100 Sondrio cell. +39.392.7096936 cell. +39.347.7196482 From domenico.lorusso a pleiade.it Mon Mar 19 16:59:22 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Mon Mar 19 17:25:53 2007 Subject: [Db] query quiz In-Reply-To: <45FE82F1.6070408@vezz.it> References: <45FE8008.5010001@vezz.it> <45FE82F1.6070408@vezz.it> Message-ID: <45FEB35A.5090003@pleiade.it> Marcello Vezzelli ha scritto: > Marcello Vezzelli ha scritto: >> Come faccio a ottenere le PRIME RISPOSTE a TUTTE le domande per un >> certo utente? >> Suggerimenti? > > select * from risposte JOIN ( > (SELECT * FROM `utilizzo` WHERE rif_utente=1 group by rif_domanda) > as q) > ON risposte.id=q.rif_risposta > ORDER BY q.rif_domanda > > Ho notato che scrivere una domanda in ml mi fa trovare la risposta da > solo :) ma sei sicuro?? boh sarà il dialetto di mysql.. ma per esempio: SELECT * FROM `utilizzo` WHERE rif_utente=1 group by rif_domanda dovrebbe tornare errore... Inoltre perché rif_risposta ti da le prime risposte??!?!? (poniamo che prendi il minore, ma dove lo fai?) o forse non ho capito il problema... io avrei approcciato così (puoi anche sostituire dataora con rif_risposte): select r.descrizione, s.* from risposte s, richieste r where ( rif_utente, rif_domanda, dataora) in ( select rif_utente, rif_domanda, min(dataora) from risposte where rif_utente=1 group by rif_utente, rif_domanda ) and r.id=s.rif_domanda (non so se su mysql questa sintassi è supportata, però al limite si rigira con una join ) ciao :-) -- Domenico L. icq: 645 44 861 per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From marcello a vezz.it Mon Mar 19 17:01:03 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Mon Mar 19 17:30:31 2007 Subject: [Db] query quiz In-Reply-To: <45FEB35A.5090003@pleiade.it> References: <45FE8008.5010001@vezz.it> <45FE82F1.6070408@vezz.it> <45FEB35A.5090003@pleiade.it> Message-ID: <45FEB3BF.2020904@vezz.it> Domenico L. ha scritto: > ma sei sicuro?? > > boh sarà il dialetto di mysql.. ma per esempio: > SELECT * FROM `utilizzo` WHERE rif_utente=1 group by rif_domanda > > dovrebbe tornare errore... su mysql 5 fa esattamente quel che mi aspettavo.. e infatti un po' mi sono stupito... > > Inoltre perché rif_risposta ti da le prime risposte??!?!? (poniamo che > prendi il minore, ma dove lo fai?) prende il "primo" che trova... in questo caso mi va bene, perché id precedenti corrispondono a date precedenti. > > io avrei approcciato così (puoi anche sostituire dataora con > rif_risposte): > > [..] > > (non so se su mysql questa sintassi è supportata, però al limite si > rigira con una join ) Domani provo e ti dico, intanto grazie! Saluti Marcello From marcello a vezz.it Tue Mar 20 13:47:26 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Tue Mar 20 14:16:12 2007 Subject: [Db] query quiz In-Reply-To: <45FEB35A.5090003@pleiade.it> References: <45FE8008.5010001@vezz.it> <45FE82F1.6070408@vezz.it> <45FEB35A.5090003@pleiade.it> Message-ID: <45FFD7DE.8010605@vezz.it> Domenico L. ha scritto: > io avrei approcciato così (puoi anche sostituire dataora con > rif_risposte): > > > select r.descrizione, s.* > from risposte s, richieste r > where ( rif_utente, rif_domanda, dataora) in > ( > select rif_utente, rif_domanda, min(dataora) > from risposte > where rif_utente=1 > group by rif_utente, rif_domanda > ) > > and r.id=s.rif_domanda > > (non so se su mysql questa sintassi è supportata, però al limite si > rigira con una join ) Premetto che la soluzione che ho postato funziona, e ho anche capito perché... però mi interessava anche capire il tuo approccio. Non ho capito a cosa serve min(dataora). Ho fatto questa cosa... ho "taroccato" gli id in modo che ci sia un dataora minore di un record precedente (vedi record 8). In questa condizione, la mia soluzione non funziona più. Se ora faccio SELECT * , min( dataora ) FROM utilizzo WHERE rif_codice =1 GROUP BY rif_codice, rif_domanda mi torna questo: id rif_codice rif_domanda rif_risposta dataora attesa min( dataora ) 1 1 47 1 2007-03-19 09:51:30 4.22 2007-03-19 09:51:30 4 1 48 6 2007-03-19 10:07:37 12.61 2007-03-19 09:51:48 7 1 49 8 2007-03-19 09:52:21 4.11 2007-03-19 09:52:21 Nel record 4, dataora e min(dataora) sono diversi... effettivamente doveva tornarmi l'id 8, non il 4! con una SELECT liscia, SELECT * FROM utilizzo WHERE rif_codice =1 id rif_codice rif_domanda rif_risposta dataora attesa 1 1 47 1 2007-03-19 09:51:30 4.22 4 1 48 6 2007-03-19 10:07:37 12.61 5 1 47 3 2007-03-19 13:05:10 3.03 6 1 48 7 2007-03-19 13:05:38 14.77 7 1 49 8 2007-03-19 09:52:21 4.11 8 1 48 5 2007-03-19 09:51:48 3.8 Mi chiedo.. a cosa serve min(dataora)? Non influisce sul recordset finale, tant'è che coincide con la mia soluzione. Alla fine è il GROUP BY che mi dà i primi record che mi servono. e funziona SOLO se l'id è ordinato come le date (e infatti è così). Se c'è un id successivo a un altro ma che però ha dataora precedente, il gioco non funziona più e min(dataora) non mi aiuta. Ti torna tutto? Saluti Marcello From domenico.lorusso a pleiade.it Tue Mar 20 14:21:02 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Tue Mar 20 14:47:10 2007 Subject: [Db] query quiz In-Reply-To: <45FFD7DE.8010605@vezz.it> References: <45FE8008.5010001@vezz.it> <45FE82F1.6070408@vezz.it> <45FEB35A.5090003@pleiade.it> <45FFD7DE.8010605@vezz.it> Message-ID: <45FFDFBE.8030504@pleiade.it> Marcello Vezzelli ha scritto: > > Premetto che la soluzione che ho postato funziona, e ho anche capito > perché... > però mi interessava anche capire il tuo approccio. > > Non ho capito a cosa serve min(dataora). Serve perché verosimilmente la prima delle risposte sarà quella inserita prima > > Alla fine è il GROUP BY che mi dà i primi record che mi servono. Allora questa group by fa cose misteriose.... La group by dice: raggruppa per i seguenti campi (che devono essere specificati) ipotizza: idA idB cifra 1 2 25 1 2 37 3 2 60 3 2 45 3 3 25 se faccio una group by su idA e idB mi aspetto 3 record, quindi posso scrivere: select idA, idB from myTab group by idA, idB bene cifra qui cosa ci posso fare? posso usare una funzione di aggregazione: avg,sum,count,min,max ecc... Questo è l'approccio standard, sembra che mysql utilizza una funzione di default (che probabilmente è la min) > e funziona SOLO se l'id è ordinato come le date (e infatti è così). esatto, però io stavo anche parlando di come si scrive una query in sql (non dialetto di mysql), per carità io sono a favore dei vantaggi dei dialetti... non quando però hanno comportamenti "magici", o comunque poco chiari Inoltre con la mia soluzione se volessi prendere l'ultima risposta ti basta cambiare min in max > > Se c'è un id successivo a un altro ma che però ha dataora precedente, > il gioco non funziona più e min(dataora) non mi aiuta. min(dataora) ti aiuta invece. perché se ne frega degli id ti ritorna la prima risposta. ti riscrivo la query con la join: select r.descrizione, s.* from risposte s, richieste r, ( select rif_utente, rif_domanda, min(dataora) dataora from risposte where rif_utente=1 group by rif_utente, rif_domanda ) s1 where s.rif_utente=s1.rif_utente and s.rif_domanda=s1.rif_domanda and s.dataora=s1.dataora and r.id=s.rif_domanda Stai dicendo: fissato rif_utente e rif_domanda estrai la risposta che ha la data uguale alla minima data relativa a rif_utente e rif_domanda ciao -- Domenico L. icq: 645 44 861 per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From marcello a vezz.it Tue Mar 20 14:32:14 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Tue Mar 20 15:00:50 2007 Subject: [Db] query quiz In-Reply-To: <45FFDFBE.8030504@pleiade.it> References: <45FE8008.5010001@vezz.it> <45FE82F1.6070408@vezz.it> <45FEB35A.5090003@pleiade.it> <45FFD7DE.8010605@vezz.it> <45FFDFBE.8030504@pleiade.it> Message-ID: <45FFE25E.8030509@vezz.it> Domenico L. ha scritto: > >> Non ho capito a cosa serve min(dataora). > Serve perché verosimilmente la prima delle risposte sarà quella > inserita prima Però non ho capito il suo funzionamento in questo caso! > >> e funziona SOLO se l'id è ordinato come le date (e infatti è così). > esatto, però io stavo anche parlando di come si scrive una query in > sql (non dialetto di mysql), per carità io sono a favore dei vantaggi > dei dialetti... non quando però hanno comportamenti "magici", o > comunque poco chiari Ecco, è questo che vorrei capire... sono contento che funzioni, ma vorrei capire anche perché e se funziona così con tutti i db. > > Stai dicendo: > fissato rif_utente e rif_domanda estrai la risposta che ha la data > uguale alla minima data > relativa a rif_utente e rif_domanda Ok mi torna, ma non riesco a farlo funzionare a dovere con le tabelle che ho qui. Provo a lavorarci un po' su. Ciao Marcello From domenico.lorusso a pleiade.it Tue Mar 20 16:02:31 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Tue Mar 20 16:28:36 2007 Subject: [Db] query quiz In-Reply-To: <45FFE25E.8030509@vezz.it> References: <45FE8008.5010001@vezz.it> <45FE82F1.6070408@vezz.it> <45FEB35A.5090003@pleiade.it> <45FFD7DE.8010605@vezz.it> <45FFDFBE.8030504@pleiade.it> <45FFE25E.8030509@vezz.it> Message-ID: <45FFF787.300@pleiade.it> Marcello Vezzelli ha scritto: > Ok mi torna, ma non riesco a farlo funzionare a dovere con le tabelle > che ho qui. > Provo a lavorarci un po' su. > uhm avevo letto male i nomi delle tabelle SELECT d.testo, u. * FROM utilizzo u, domande d WHERE ( u.rif_codice, u.rif_domanda, u.dataora ) IN ( SELECT rif_codice, rif_domanda, min( dataora ) FROM utilizzo WHERE rif_codice =1 GROUP BY rif_codice, rif_domanda ) AND d.id = u.rif_domanda ecco questa funziona. La cosa comoda è che puoi provarla a pezzi, prima la query più interna poi quella più esterna ciao -- Domenico L. icq: 645 44 861 per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From marcello a vezz.it Wed Mar 21 09:10:36 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Wed Mar 21 09:39:20 2007 Subject: [Db] query quiz In-Reply-To: <45FFF787.300@pleiade.it> References: <45FE8008.5010001@vezz.it> <45FE82F1.6070408@vezz.it> <45FEB35A.5090003@pleiade.it> <45FFD7DE.8010605@vezz.it> <45FFDFBE.8030504@pleiade.it> <45FFE25E.8030509@vezz.it> <45FFF787.300@pleiade.it> Message-ID: <4600E87C.3030507@vezz.it> Domenico L. ha scritto: > Marcello Vezzelli ha scritto: >> Ok mi torna, ma non riesco a farlo funzionare a dovere con le tabelle >> che ho qui. >> Provo a lavorarci un po' su. >> > uhm avevo letto male i nomi delle tabelle > > SELECT d.testo, u. * [..] > > ecco questa funziona. > > La cosa comoda è che puoi provarla a pezzi, prima la query più interna > poi quella più esterna adesso ho capito. Grazie 1000! Mi sembra un approccio più sistematico. Saluti Marcello From domenico.lorusso a pleiade.it Wed Mar 21 14:52:17 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Wed Mar 21 15:18:27 2007 Subject: [Db] mysql dictionary views Message-ID: <46013891.9070802@pleiade.it> Ciao all, mi sapete dare un link compatto e ben fatto di tutti i comandi per interrogare il dizionario dati in mysql? ciao e grazie -- Domenico L. icq: 645 44 861 per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From aldobertoldini a gmail.com Fri Mar 23 11:31:59 2007 From: aldobertoldini a gmail.com (aldo bertoldini) Date: Fri Mar 23 12:01:36 2007 Subject: [Db] query Message-ID: <90b890c90703230331rd2063e0jaa7f9101a4c0fcf1@mail.gmail.com> sarà il venerdì ma non trovo la soluzione ho due tabelle, autori e storie. storie contiene il campo id_autore, la relazione è uno a molti (un autore-> più storie). Devo estrarre per ogni autore una sola storia, casuale. Riesco a farlo in una query sola? Aldo -------------- parte successiva -------------- Un allegato HTML è stato rimosso... URL: http://lists.ziobudda.net/pipermail/db/attachments/20070323/55d2b175/attachment.html From gianiaz a gianiaz.net Fri Mar 23 11:40:44 2007 From: gianiaz a gianiaz.net (Giovanni Battista Lenoci) Date: Fri Mar 23 12:10:22 2007 Subject: [Db] query In-Reply-To: <90b890c90703230331rd2063e0jaa7f9101a4c0fcf1@mail.gmail.com> References: <90b890c90703230331rd2063e0jaa7f9101a4c0fcf1@mail.gmail.com> Message-ID: <4603AEAC.4070103@gianiaz.net> aldo bertoldini ha scritto: > sarà il venerdì ma non trovo la soluzione > > ho due tabelle, autori e storie. storie contiene il campo id_autore, > la relazione è uno a molti (un autore-> più storie). > Devo estrarre per ogni autore una sola storia, casuale. Riesco a farlo > in una query sola? > > Aldo SELECT * FROM storie WHERE id_autore = X ORDER BY RAND LIMIT 1 -- gianiaz.net di Giovanni Battista Lenoci P.le Bertacchi 66 23100 Sondrio cell. +39.392.7096936 cell. +39.347.7196482 From marcello a vezz.it Fri Mar 23 11:43:24 2007 From: marcello a vezz.it (Marcello Vezzelli) Date: Fri Mar 23 12:12:44 2007 Subject: [Db] query In-Reply-To: <90b890c90703230331rd2063e0jaa7f9101a4c0fcf1@mail.gmail.com> References: <90b890c90703230331rd2063e0jaa7f9101a4c0fcf1@mail.gmail.com> Message-ID: <4603AF4C.9010302@vezz.it> aldo bertoldini ha scritto: > sarà il venerdì ma non trovo la soluzione > > ho due tabelle, autori e storie. storie contiene il campo id_autore, > la relazione è uno a molti (un autore-> più storie). > Devo estrarre per ogni autore una sola storia, casuale. Riesco a farlo > in una query sola? SELECT * FROM (( SELECT * FROM storie ORDER BY RAND()) as s) GROUP BY s.rif_autore Poi la joini sugli autori se vuoi. Ciao Marcello From aldobertoldini a gmail.com Fri Mar 23 11:43:22 2007 From: aldobertoldini a gmail.com (aldo bertoldini) Date: Fri Mar 23 12:12:59 2007 Subject: [Db] query In-Reply-To: <4603AEAC.4070103@gianiaz.net> References: <90b890c90703230331rd2063e0jaa7f9101a4c0fcf1@mail.gmail.com> <4603AEAC.4070103@gianiaz.net> Message-ID: <90b890c90703230343n1aa06ce3ue128632db892e0d4@mail.gmail.com> Fino lì c'ero, ma se in una query sola voglio trovare una storia *di tutti gli autori*? Cioè non estrarre prima gli autori e poi una storia per ogni autore, ma insieme tutti gli autori e una storia per ogni autore? Il 23/03/07, Giovanni Battista Lenoci ha scritto: > > aldo bertoldini ha scritto: > > sarà il venerdì ma non trovo la soluzione > > > > ho due tabelle, autori e storie. storie contiene il campo id_autore, > > la relazione è uno a molti (un autore-> più storie). > > Devo estrarre per ogni autore una sola storia, casuale. Riesco a farlo > > in una query sola? > > > > Aldo > SELECT * FROM storie WHERE id_autore = X ORDER BY RAND LIMIT 1 > > -- > gianiaz.net > di Giovanni Battista Lenoci > P.le Bertacchi 66 > 23100 Sondrio > cell. +39.392.7096936 > cell. +39.347.7196482 > > _______________________________________________ > Db mailing list > Db@lists.ziobudda.net > http://lists.ziobudda.net/mailman/listinfo/db > -------------- parte successiva -------------- Un allegato HTML è stato rimosso... URL: http://lists.ziobudda.net/pipermail/db/attachments/20070323/41c6c3c8/attachment.htm From aldobertoldini a gmail.com Fri Mar 23 11:45:59 2007 From: aldobertoldini a gmail.com (aldo bertoldini) Date: Fri Mar 23 12:15:37 2007 Subject: [Db] query In-Reply-To: <4603AF4C.9010302@vezz.it> References: <90b890c90703230331rd2063e0jaa7f9101a4c0fcf1@mail.gmail.com> <4603AF4C.9010302@vezz.it> Message-ID: <90b890c90703230345v4eab7005u737b43c59b5137ee@mail.gmail.com> Grande; non l'avevo mai provata Il 23/03/07, Marcello Vezzelli ha scritto: > > aldo bertoldini ha scritto: > > sarà il venerdì ma non trovo la soluzione > > > > ho due tabelle, autori e storie. storie contiene il campo id_autore, > > la relazione è uno a molti (un autore-> più storie). > > Devo estrarre per ogni autore una sola storia, casuale. Riesco a farlo > > in una query sola? > > SELECT * FROM (( > SELECT * > FROM storie > ORDER BY RAND()) as s) GROUP BY s.rif_autore > > Poi la joini sugli autori se vuoi. > > Ciao > Marcello > > _______________________________________________ > Db mailing list > Db@lists.ziobudda.net > http://lists.ziobudda.net/mailman/listinfo/db > -------------- parte successiva -------------- Un allegato HTML è stato rimosso... URL: http://lists.ziobudda.net/pipermail/db/attachments/20070323/1d776c7d/attachment.html From michel a ziobudda.net Thu Mar 29 01:28:21 2007 From: michel a ziobudda.net (Davide Michel 'ZioBudda' Morelli) Date: Thu Mar 29 01:58:59 2007 Subject: [Db] Cachare una query Message-ID: <460AFA15.8010008@ziobudda.net> Ciao all. Per una applicazione che sto realizzando devo estrarre dei dati da un db MYSQL. Questi dati sono per la maggiorparte delle volte, sempre gli stessi, cosi' mi sono domandato se non mi convenisse fare la cache di queste "estrazioni" (o estrapolazioni se non mi ricordo male). Ma la domanda è : come farlo per bene ? Vi dico che come linguaggio di programmazione uso PHP5.2 e come DBMS uso MYSQL 5.x. E anche vero che MYSQL > 4 ha un suo gestore interno di cache, ma io vorrei creare un qualche cosa che stia al di sopra di questo sistema. Sempre che sia consigliabile. Grazie e ciao. PS: nelle store procedure di MYSQL è possibile pasasre un parametro e farlo eseguire come se fosse una query ? Tipo: call miaStore("select * from pippo"); -- Michel 'ZioBudda' Morelli michel@ziobudda.net Consulenza sistemistica in ambito OpenSource. Sviluppo applicazioni web dinamiche (LAMP+Ajax) Telefono: +39-3939890025 -- Fax: +39-0291390660 http://www.ziobudda.net ICQ: 58351764 http://www.ziobuddalabs.it Skype: zio_budda http://www.ajaxblog.it MSN: michel@ziobuddalabs.it From domenico.lorusso a pleiade.it Thu Mar 29 09:09:03 2007 From: domenico.lorusso a pleiade.it (Domenico L.) Date: Thu Mar 29 09:36:34 2007 Subject: [Db] Cachare una query In-Reply-To: <460AFA15.8010008@ziobudda.net> References: <460AFA15.8010008@ziobudda.net> Message-ID: <460B660F.4000400@pleiade.it> Davide Michel 'ZioBudda' Morelli ha scritto: > Ciao all. Per una applicazione che sto realizzando devo estrarre dei > dati da un db MYSQL. Questi dati sono per la maggiorparte delle volte, > sempre gli stessi, cosi' mi sono domandato se non mi convenisse fare > la cache di queste "estrazioni" (o estrapolazioni se non mi ricordo > male). Ma la domanda è : come farlo per bene ? Vi dico che come > linguaggio di programmazione uso PHP5.2 e come DBMS uso MYSQL 5.x. E > anche vero che MYSQL > 4 ha un suo gestore interno di cache, ma io > vorrei creare un qualche cosa che stia al di sopra di questo sistema. > Sempre che sia consigliabile. Uhm... un dbms dovrebbe cachare gli sql per non ricalcolare i piani di esecuzione (che dovrebbero essere la cosa più pesante). Ammesso che Mysql abbia una gestione di cache effettiva (ma le materialized view/snapshot allora a cosa dovrebbero servire) il tuo collo di bottiglia è sempre la rete. Detto questo ha senso fare un caching. Puoi fare in modo che se passi ad una tua funzione uno statement sql la funzione gli calcola l'md5 (o altra hash function), in un file di paramentri metti le hash delle query, il tempo di retention e il nome del file in cui memorizzi i dati. A questo punto se la tua funzione trova i l'hash nel file dei parametri recupera i dati da disco altrimenti effettua la query. Solo che a questo punto ti serve anche un iterator, quindi mi sa che dovresti farti una classe (forse su pear c'è qualcosa..) Ciao > PS: nelle store procedure di MYSQL è possibile pasasre un parametro e > farlo eseguire come se fosse una query ? Tipo: call miaStore("select * > from pippo"); non lo so, sorry.... cmq molto dipende se esistono i tipi tabella e recordset credo.. -- Domenico L. icq: 645 44 861 per stupire mezz'ora basta un libro di storia, io cercai di imparare la Treccani a memoria... [F.d.A.] From AlberT a superalbert.it Thu Mar 29 09:48:15 2007 From: AlberT a superalbert.it (Emiliano Gabrielli (aka AlberT)) Date: Thu Mar 29 10:20:39 2007 Subject: [Db] Cachare una query In-Reply-To: <460AFA15.8010008@ziobudda.net> References: <460AFA15.8010008@ziobudda.net> Message-ID: <200703290948.15480.AlberT@superalbert.it> On Thursday 29 March 2007 01:28, Davide Michel 'ZioBudda' Morelli wrote: > uso PHP5.2 e come DBMS uso MYSQL 5.x usa symfony :-) -- From michel a ziobudda.net Thu Mar 29 09:55:55 2007 From: michel a ziobudda.net (Davide Michel 'ZioBudda' Morelli) Date: Thu Mar 29 10:26:38 2007 Subject: [Db] Cachare una query In-Reply-To: <200703290948.15480.AlberT@superalbert.it> References: <460AFA15.8010008@ziobudda.net> <200703290948.15480.AlberT@superalbert.it> Message-ID: <460B710B.5070000@ziobudda.net> Emiliano Gabrielli (aka AlberT) ha scritto: > On Thursday 29 March 2007 01:28, Davide Michel 'ZioBudda' Morelli wrote: > >> uso PHP5.2 e come DBMS uso MYSQL 5.x >> > > usa symfony :-) > Ormai è tardi... ho iniziato da 0 a scrivere tutto codice. Si ok, è sbagliato, ma questa volta è andata cosi'. E non avevo tempo di imparare Symphony o Zend o altro. Ciao. M. -- Michel 'ZioBudda' Morelli michel@ziobudda.net Consulenza sistemistica in ambito OpenSource. Sviluppo applicazioni web dinamiche (LAMP+Ajax) Telefono: +39-3939890025 -- Fax: +39-0291390660 http://www.ziobudda.net ICQ: 58351764 http://www.ziobuddalabs.it Skype: zio_budda http://www.ajaxblog.it MSN: michel@ziobuddalabs.it -------------- parte successiva -------------- Un allegato HTML è stato rimosso... URL: http://lists.ziobudda.net/pipermail/db/attachments/20070329/011286cf/attachment.htm