Esercizio dubbio sulla soluzione, doppia JOIN

di il
3 risposte

Esercizio dubbio sulla soluzione, doppia JOIN

Squadre(IdSquadra, Nome, Città)

Partite(IdPartitaSquadraCasaSquadraOspite, GoalCasa, GoalOspiti, Turno)

I goal fatti dalle squadre dell'Udinese contro le squadre di Messina

Prima bozza di soluzione: 

 SELECT *

FROM Parite P

JOIN Squadre S1 ON S1.IdSquadra = P.SquadraCasa

JOIN Squadre S2 ON S2.IdSquadra = P.SquadraOspite

WHERE (S1.Città = ‘Udine’ AND S2.Citta = ‘Messina’)

OR (S1.Città = ‘Messina’ AND S2.Citta = Udine)

Così mi sono sicuramente recuperata il nome delle squadre che giocano in casa e quelli che giocano come ospiti che fanno parte delle due squadre date per città, ovvero ‘Messina’ e ‘Udine’.

Il mio problema ora è contare il numero dei goal fatti solo dall'Udinese, a questo punto mi chiedo se fare due select separate (una per contare i goal dove l'Udinese gioca in casa, l'altra dove gioca come ospite) e poi usare UNION ALL o se ci sia una soluzione alternativa migliore (o comunque diversa da questa).

Sapreste aiutarmi?

Grazie

3 Risposte

  • Re: Esercizio dubbio sulla soluzione, doppia JOIN

    Dividi il problema…

    Poi fai una select di select

    Ma quella sql funziona?

    Vuoi sapere i goal fatti.. sum?

  • Re: Esercizio dubbio sulla soluzione, doppia JOIN

    Penso a una soluzione come questa, però così non mi somma i due risultati

    SELECT 
       SUM(P.GoalCasa) AS GoalInCasa
    FROM 
       Partite P
    JOIN 
       Squadre S1 ON S1.IdSquadra = P.SquadraCasa
    JOIN 
       Squadre S2 ON S2.IdSquadra = P.SquadraOspite
    WHERE 
       S1.Città = 'Udine' AND S2.Città = 'Messina'
    UNION ALL
    SELECT 
       SUM(P.GoalOspiti) AS GoalFuoriCasa
    FROM 
       Partite P
    JOIN 
       Squadre S1 ON S1.IdSquadra = P.SquadraCasa
    JOIN 
       Squadre S2 ON S2.IdSquadra = P.SquadraOspite
    WHERE 
       S1.Città = 'Messina' AND S2.Città = 'Udine';

  • Re: Esercizio dubbio sulla soluzione, doppia JOIN

    Non è chiarissimo il risultato che vuoi ottenere…

    Prova a postare il contenuto delle due tabelle ed il risultato desiderato. Esempio:

    Squadre

    idsquadranomecitta
    1UdineseUdine
    2MessinaMessina

    Partite

    idpartitasquadracasasquadraospitegoalcasagoalospiti
    11243

    Risultato ?

    Una volta capito cosa vorresti fare, si può vedere come scrivere la query

Devi accedere o registrarti per scrivere nel forum
3 risposte