Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [SQL] Join

  1. #1
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269

    [SQL] Join

    Ragazzi ho il seguente schema relazionale:
    codice:
    STADIO(Nome, Città, Capienza)
    PARTITA(NomeStadio, Data, Ora, Squadra1, Squadra2, Goal1, Goal2)
    SQUADRA(Nazione, Continente)
    nella tab STADIO, Nome è primary key
    nella tab PARTITA, (NomeStadio, Data, Ora) è primary key
    nella tab SQUADRA Nazione è primary key.

    Come faccio a determinare:

    La capienza complessiva degli stadi in cui si giocano partite di nazionali africante (devo sommare le capienze associate ad ogni partita)

    e devo determinare solamente le squadre che incontrano squadre dello stesso contintente.

    In sql come faccio?
    Con i sogni possiamo conoscere il futuro...

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    ___ Quale DB usi
    ( Immaginiamo per semplicita Access )
    poi lo trasformerai te in MySql o altro


    __________________________________________________ _______________


    ___ Relativamente alla 1° domanda
    _______Lo stadio di Pechino ha capienza 100.000
    _______Lo stadio del Cairo ha capienza 70.000

    _______ Le partite Sono
    __ Italia _ Spagna ----> Cairo
    __ Spagna _ Kenia------> Cairo
    __ Kenia _ Italia------> Pechino
    __ Egitto _ Kenia------> Pechino

    Il tuo risultato deve essere 270.000 Giusto ???

    La risposta potrebbe essere:
    codice:
    SELECT 
    
    Sum(STADIO.Capienza) AS TotCapAfr 
    
    FROM 
    
    STADIO 
    INNER JOIN 
    ( 
    ( 
    PARTITA 
    INNER JOIN 
    SQUADRA AS SQA 
    ON PARTITA.Squadra1 = SQA.Nazione 
    ) 
    INNER JOIN 
    SQUADRA AS SQB 
    ON PARTITA.Squadra2 = SQB.Nazione 
    ) 
    ON STADIO.Nome = PARTITA.NomeStadio 
    
    WHERE 
    (((SQA.Continente)="Africa")) 
    OR 
    (((SQB.Continente)="Africa")) 
    
    ;

    __________________________________________________ ________________


    Relativamente alla 2° Domanda

    _______ Le partite Sono
    __ Italia _ Spagna
    __ Spagna _ Kenia
    __ Kenia _ Italia
    __ Egitto _ Kenia

    Il risultato deve essere
    __ Italia _ Spagna
    __ Egitto _ Kenia

    Giuto???


    Hai 2 Risposte

    codice:
    SELECT 
    
    YY.Squadra1, 
    YY.Squadra2 
    
    FROM 
    
    ( 
    
    SELECT 
    
    PARTITA.Squadra1, 
    PARTITA.Squadra2, 
    SQA.Continente, 
    SQB.Continente 
    
    FROM 
    
    ( 
    PARTITA 
    INNER JOIN 
    SQUADRA AS SQA 
    ON PARTITA.Squadra1 = SQA.Nazione 
    ) 
    INNER JOIN 
    SQUADRA AS SQB 
    ON PARTITA.Squadra2 = SQB.Nazione 
    
    ) AS YY 
    
    WHERE 
    (((YY.SQA.Continente)=(YY.SQB.Continente))) 
    
    ;
    codice:
    SELECT 
    
    PARTITA.Squadra1, 
    PARTITA.Squadra2 
    
    FROM 
    
    ( 
    PARTITA 
    INNER JOIN 
    SQUADRA AS SQA 
    ON PARTITA.Squadra1 = SQA.Nazione 
    ) 
    INNER JOIN 
    SQUADRA AS SQB 
    ON (SQA.Continente = SQB.Continente) AND (PARTITA.Squadra2 = SQB.Nazione) 
    
    ;

    __________________________________________________ ___________________________



    Ma secondo me dovresti "studiarti" bene questa Query
    perche tutte le altre sopra esposte
    ne sono una logica conseguenza

    codice:
    SELECT 
     
    PARTITA.Squadra1, 
    PARTITA.Squadra2, 
    SQA.Continente, 
    SQB.Continente 
    
    FROM 
    
    ( 
    PARTITA 
    INNER JOIN 
    SQUADRA AS SQA 
    ON PARTITA.Squadra1 = SQA.Nazione 
    ) 
    INNER JOIN 
    SQUADRA AS SQB 
    ON PARTITA.Squadra2 = SQB.Nazione 
    
    ;






    Saluti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.