|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
|
sql avanzato e mysql
Mi chiedevo se era possibile (ne ho la necessità) effettuare query ricorsive del tipo WITH.... UNION ALL con mysql.
Grazie Soalle |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 2183
|
mysql è conforme allo standard del linguaggio sql quindi dovresti poter fare tutto
di with non ne so nulla ma di union son sicurissimo che puoi usarlo x quest'ultimo le tabelle le cui query devi unire devono avere la stessa struttura (nome e tipo di records) poi puoi fare SELECT * FROM tabella1 A UNION SELECT * FROM tabella1 B union al posto di union puoi anche mettere UNION ALL che permette di ripetere dei record assolutamente identici |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
MySql non è full compliant con lo standard SQL '92 soprattutto perchè non supporta sottoquery nel WHERE (anche nel FROM non le supporta, ma quelle nel WHERE sono un po' più gravi visto che mi sembra che siano contemplate anche nello standard precedente)...
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
|
voi mi consigliereste mysql o postgres? (pregi e difetti di entrambi)
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Dipende dal tipo di lavoro che ci devi fare...
MySQL attualmente lo vedo molto bene in applicazioni Web...perchè è molto veloce e permette di gestire un numero molto alto di query/secondo...magari proprio perchè non può gestire query molto complicate... Poi, visto che le sue tabelle native (MyISAM) non supoortano le transazioni, ma solamente il locking, si adatta ancora di più al mondo web in cui servono molte query in lettura e poche (e semplici) di update/creazione... Comunque le transazioni sono supportate sulle tabelle di tipo InnoDB...compreso il log file e quindi il recupero totale da crush... Sono convinto che, quando in MySQL verrà aggiunta la possibilità di usare subquery (nella 4.1 credo), sarà un osso duro per tutti...anche per quelli commerciali... Mentre PostgreSQL sembra (perchè non l'ho usato direttamente) un prodotto molto completo e complesso e forse anche per questo un po' più lento Quindi per il Web ovviamente MySQL... Per Windows sceglerei MySQL...mi sembra molto stabile e ben integrato (al contrario di PostgreSQL) per Windows... Per altre applicazioni sarebbe da valutare...anche se per applicazioni molto pese credo che PostgreSQL + Linux sia una scelta obbligata... |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
|
l'obiettivo è usarlo per il web ma a me interessava molto la possibilità di fare query ricorsive che non credo si possa con mySQL (con postgres non lo so)... adesso mi allontanerò dal computer per almeno 4-5 giorni poi farò delle prove con entrambi e vi dirò le mie impressioni.
Grazie Soalle |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Che sono le query ricorsive ? Mi fai un esempio ?
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
|
ho una tabella "Genitori" con campi Figlio e Genitore mi interessano tutti gli antenati di una data persona:
WITH antenati(Persona,Avo) AS((SELECT Figlio, Genitore FROM Genitori) UNION ALL (SELECT G.Figlio, A.Avo FROM Genitori G, Antenati A WHERE G.Genitore= A.Persona)) SELECT Aco FROM Antenati WHERE Persona = 'Pinco Pallino' Così mi vengono fuori genitori, nonni, bisnonni, etc. di 'Pinco Pallino' Può anche essere comodo in una tabella del tipo: per fare il componente A ci vuole il componente B per fare il componente B ci vuole il componente 2 C per fare il componente B ci vuole il componente 3 D etc... Quanti e quali componenti o sottocomponenti ci vogliono per fare A? PS: scusami ma per i prox 4 giorni sarò assente e non ti potrò rispondere (mi rubano il computer |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
No...non sono proprio possibili queste cose con MySQL...
Non so in PorstgreSQL... |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Come ti dicevo PostgreSQL è un po' più compesso
http://www.brasileiro.net/postgres/c...mp;format=long |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
|
grazie mille!!!
Alla fine della prox settimana proverò!!! Ciao Soalle |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:20.



















