PS:
spero che modificando i nomi delle tabelle e dei campi non abbia stravolto le query originali.
Penso di no, visto che i risultati sono congruenti coi dati in gioco.
PS:
spero che modificando i nomi delle tabelle e dei campi non abbia stravolto le query originali.
Penso di no, visto che i risultati sono congruenti coi dati in gioco.
Cosa intendi con ridondanti ?
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
Nella mia query si puo' anche togliere il group by e mettere order by corso.
Ribadisco. Gli id nelle tabelle allievi e docenti non servono a nulla.
Ultima modifica di badaze; 02-04-2016 a 23:19
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
EDIT
il forum ha qualche problema con la modifica dei messaggi
IMHO, la ciccia è costituita dalle le due semplicissime count sulleUn po' complicato per una cosa semplice. No ?
due tabelle sc_corsi_docenti e sc_corsi_allievi; il resto è tutto contorno.
Quote Originariamente inviata da badaze Visualizza il messaggio
questo sarebbe un difetto a prioriDi più nel caso in cui ci fosse un corso senza docente ma con un allievo non lo segnala.
select c.id_corso, c.descrizione,
(select count(*) from corsi_docenti d where d.id_corso = c.id_corso) as tot_staff,
(select count(*) from corsi_allievi a where a.id_corso = c.id_corso) as tot_all
from corsi c
group by c.id_corso, c.descrizione
order by c.id_corso, c.descrizione
sono abbastanza convinto che come piani di esecuzione non sarebbero poi tanto diversi
P.S.
... togli la group by che non serve
Ultima modifica di sspintux; 02-04-2016 a 23:43
Appunto. Se la programmazione è stata fatta bene allora sia la tua che la mia daranno lo stesso risultato. Nel mio lavoro mi servo proprio delle query per evidenziare quei diffetti.sspintux
questo sarebbe un difetto a priori
L'ho segnalato nel mio post precedente.sspintux
P.S.
... togli la group by che non serve
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
Figurati.
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
comunque,
buona la tua ultima sempre ammesso che mysql la interpreti correttamente trasformandola in join;
...cosa su cui nutro qualche dubbio.
Con mySql ho avuto a che fare un paio di anni fa per un programma non banale
e dopo qualche settimana lo sostituimmo con il fratellastro MariaDb che si dimostrò superiore.
Ora non so se lo hanno migliorato, ma al tempo di cui ti parlo, una banale select tipo:
select * from tab1 where id not in (select id from tab2)
ci metteva un vita ad essere eseguita e bisognava riscriverla
a manina usando left join per avere tempi di esecuzione accettabili.
Ciao ed intanto tante grazie per l'impegno che entrambi state mettendo nel risolvere questo mio problema.
Tolto il GROUP BY dalla query di badaze
Modificato ORDER BY solo sul campo corso
@badaze
Per ridondante intendo, forse in maniera inappropriata, troppe informazioni: record inutili (quelli con 0 - 0), record con campi inutili (si verificava nel primo esempio di sspintux.
Gli id delle due tabelle non servono in questo lavoro che stiamo (state) facendo, ma immagino che mi torneranno utili in altri lavori che ho in progetto per questa applicazione.
Quindi, se non danno fastidio a questo specifico lavoro li terrei.
Di più nel caso in cui ci fosse un corso senza docente ma con un allievo non lo segnala.
E' l'unico caso che non può verificarsi.
Al momento dell'assegnazione dei corsi, nel modulo insegnanti, vengono mostrati tutti i corsi sostenibili dalla scuola, e magari aggiungerne altri.
Al momento dell'assegnazione dei corsi agli allievi, vengono mostrati solo i corsi già assegnati agli insegnanti.
Ho aggiustato la pagina rendendola più leggibile aggiornandola con le ultime due Query.
http://mikevba.altervista.org/nuovo/...u_due_tabelle/
Non so se ho dimenticato qualcosa.
Per la ridondanza...
codice:select c.id_corso, c.descrizione, (select count(*) from corsi_docenti d where d.id_corso = c.id_corso) as tot_staff, (select count(*) from corsi_allievi a where a.id_corso = c.id_corso) as tot_all from corsi c HAVING tot_staff+tot_all > 0 order by c.descrizione
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr