Ho un piccolo (si fa per dire) problema con una query in cui dovrei fare un doppio Join sulla stessa tabella. Per farla semplice, ho 2 tabelle:
iscrizioni_coppie
|id|giocatore_1|giocatore_2|
|1|Pippo|Pluto|
|2|Paperino|Paperone|
classifica
|anno|week|giocatore|punti
|2015|1|Paperino|200
|2015|1|Pippo|100
|2015|1|Paperone|50
|2015|2|Paperino|300
|2015|2|Pippo|150
|2015|2|Paperone|50
|2015|2|Pluto|40
Dovrei ordinare le coppie (giocatore 1 e giocatore 2) iscritte in iscrizioni_coppie, in base alla somma decrescente dei punti dei 2 giocatori che la compongono per una data settimana di un dato anno prelevati, ovviamente dalla tabella classifica.
Sono riuscito a tirar fuori qualcosa che funziona solo quando entrambi i giocatori di una coppia compaiono in classifica (quindi nell'esempio in corrispondenza della week 2 del 2015) mentre non riesco a farlo funzionare nel caso in cui uno o più giocatori non siano in classifica nella settimana scelta (caso della week 1 dove Pluto non è presente in classifica in quella settimana)
Questo è quanto ho fatto:
Ho provato a mettere anche il LEFT JOIN in modo da restituirmi tutte le righe della tabella iscrizioni_coppie che non trovano corrispondenza sulla tabella classifica, ma niente, mi restituisce solo le righe in cui entrambi i giocatori sono presenti nella classifica in quella settimana.Codice PHP:SELECT i.*,c.*,c2.*, c1.punti+c2.punti AS punti_coppia
FROM iscrizioni_coppie AS i
JOIN classifica AS c ON i.giocatore_1=c.giocatore
JOIN classifica AS c2 ON i.giocatore_2=c2.giocatore
WHERE c.week='$week' AND c.anno='$anno' AND
c2.week='$week' AND c2.anno='$anno'
ORDER BY punti_coppia DESC
Mi affido alla vostra esperienza, sicuramente maggiore della mia![]()

Rispondi quotando
