codice:select t1.teamname,t2.teamname,c.homescore,c.visitorscore from ca5_calendar as c inner join ca5_teams as t1 on t1.uid = c.hometeam inner join ca5_teams as t2 on t2.uid = c.visitorteam
codice:select t1.teamname,t2.teamname,c.homescore,c.visitorscore from ca5_calendar as c inner join ca5_teams as t1 on t1.uid = c.hometeam inner join ca5_teams as t2 on t2.uid = c.visitorteam
ok ma dove sono i 2 nomi squadra? in t1 e t2?
ho provato a stampare l'array generato ma non appaiono..
Fai riferimento agli alias per estrapolare i dati.codice:select t1.teamname as sq1,t2.teamname as sq2,c.homescore as gsq1,c.visitorscore as gsq2 from ca5_calendar as c inner join ca5_teams as t1 on t1.uid = c.hometeam inner join ca5_teams as t2 on t2.uid = c.visitorteam order by c.uid
ok funziona grazie mille,
studio un po la sintassi e se in caso ho altre domande ti disturbo ancora
ciao
ciao ottima query, peccato che mi dia qualche errore che non riesco a capire.Originariamente inviato da nicola75ss
Posto la mia query con quelle statistiche supplementari che volevi.
Può sempre tornare utile a qualcuno.
codice:select squadra, count(squadra) as partite, sum(if(punteggio=3,1,0)) as vittorie, sum(if(punteggio=1,1,0)) as pareggi, sum(if(punteggio=0,1,0)) as sconfitte, sum(punteggio) as punteggio, sum(fatti) as fatti, sum(subiti) as subiti, sum(fatti)-sum(subiti) as diff_reti, sum(if(dove="C",fatti,0)) as fatti_casa, sum(if(dove="T",fatti,0)) as fatti_trasferta, sum(if(dove="C",subiti,0)) as subiti_casa, sum(if(dove="T",subiti,0)) as subiti_trasferta, sum(if(punteggio=3 and dove = "C",1,0)) as vittorie_casa, sum(if(punteggio=1 and dove = "C",1,0)) as pareggi_casa, sum(if(punteggio=0 and dove = "C",1,0)) as sconfitte_casa, sum(if(punteggio=3 and dove = "T",1,0)) as vittorie_trasferta, sum(if(punteggio=1 and dove = "T",1,0)) as pareggi_trasferta, sum(if(punteggio=0 and dove = "T",1,0)) as sconfitte_trasferta, sum(if(dove = "C",1,0)) as partite_casa, sum(if(dove = "T",1,0)) as partite_trasferta from ( select sq_casa as squadra,gol_casa as fatti,gol_trasferta as subiti,"C" as dove, case when gol_casa > gol_trasferta then 3 when gol_casa = gol_trasferta then 1 else 0 end as punteggio from campionato union all select sq_trasferta as squadra,gol_trasferta as fatti,gol_casa as subiti,"T", case when gol_trasferta > gol_casa then 3 when gol_trasferta = gol_casa then 1 else 0 end as punteggio from campionato ) as tab group by squadra order by punteggio desc
i punteggi calcolati sono tutti giusti a parte la prima squadra classificata e l'ultima (mancano dei punti). non riesco a capire dove sta il problema..
grazie ottimo script comunque
Ciao. Potresti postare un dump che riproduca il problema per verificare la query?Originariamente inviato da davidino80
ciao ottima query, peccato che mi dia qualche errore che non riesco a capire.
i punteggi calcolati sono tutti giusti a parte la prima squadra classificata e l'ultima (mancano dei punti). non riesco a capire dove sta il problema..
grazie ottimo script comunque
ho scoperto il problema: i gol fatti e subiti nel calendario erano in varchar, mentre lo script funziona correttamente se i campi sono integer.
non voglio che venga a mostrata una partita se non si conosce ancora il risultato; non posso fare un controllo sulla data perchè, anche se è finita la partita, è facile che non si conosca il risultato immediatamente (parlo di leghe minori, non certo serieA).
come potrei risolvere? campo aggiuntivo che differenza risultato si/no?
col campo vuoto era più semplice..
ciao grazie
Fai così. Aggiungi un campo tinyint(1) che settarai a 0/1.Originariamente inviato da davidino80
come potrei risolvere? campo aggiuntivo che differenza risultato si/no?
Ciao,
è la prima volta che scrivo in questo forum.
Stavo guardando la query riguardante la classifica ma sinceramente non riesco ad addatarlo al mio database (non sono molto esperto di mysql) quindi volevo chiedervi un aiuto.
cmq vi posto le mie tabelle piu importanti che dovrebbero servire per l'occasione:
tabella squadra (dove sono inserite tutte le squadre di ogni stagione)
tabella partita (tutte le partite di ogni squadra e di tutti i campionati di ogni stagione, per trovare una determinata partita utilizzo la data come riferimento (esiste una tabella "giornata" ma non c'è un vero e proprio collegamento con essa perchè come ho già detto utilizzo la data come collegamento))codice:CREATE TABLE IF NOT EXISTS `squadra` ( `ID_squadra` int(20) NOT NULL AUTO_INCREMENT, `nome` varchar(20) NOT NULL, `paese` varchar(20) NOT NULL, `stadio` varchar(20) NOT NULL, `descrizione` varchar(150) NOT NULL, PRIMARY KEY (`ID_squadra`) )
codice:CREATE TABLE IF NOT EXISTS `partita` ( `ID_partita` int(20) NOT NULL AUTO_INCREMENT, `data_partita` date NOT NULL, `sq_casa` int(20) NOT NULL, `sq_fuori` int(20) NOT NULL, `goal_c` int(2) DEFAULT NULL, `goal_f` int(2) DEFAULT NULL, PRIMARY KEY (`ID_partita`) )
tabella classifica (in cui vengono suddivise le squadre a seconda della stagione, il campo stagione è una chiave esterna della tabella "stagione")
codice:CREATE TABLE IF NOT EXISTS `classifica` ( `ID_classifica` int(20) NOT NULL AUTO_INCREMENT, `squadra` int(20) NOT NULL, `stagione` int(20) NOT NULL, PRIMARY KEY (`ID_classifica`) )
Spero che riusciate ad aiutarmi
grazie per ora
per le prime 2 tabelle vale lo script che è nella prima pagina del post.
la tabella classifica non ti serve perchè lo script ricava la classifica calcolandola dai risultati.
non serve salvarla su un'altra tabella, basta mostrarla a video ordinata per punti.
intanto prova, poi al limite passa a domande più specifiche.
ciao.