Visualizzazione dei risultati da 1 a 10 su 16

Visualizzazione discussione

  1. #1

    codice SQL da access query complessa

    Ciao a tutti ragazzi,vi spiego il mio problema in italiano e soprattuto con un filo logico : sto realizzando un database abbastanza complesso relativo ad una società di eventi che realizza campionati di calcio a 4.

    Essendo che di occupo un pò di tutto,ma nello specifico tocco pochi rami,sto cercando di realizzare il database con le mie forze e fino ad ora,al livello logico nessun problema: le tabelle sono state create e senza che logicamente parlando il sistema fili.

    Il problema è un altro: per riuscire a collegare le varie tabelle con MYSQL mi aiuto,essendo non molto pratico di codice SQL,con Access ed il relativo codice da esso generato adattandolo a mysql.

    Ora essendo che vorrei capirci meglio e non trascurare il "perchè" questo codice viene generato sto cercando di studiarlo per riuscire a liberarmi di Access e realizzare il codice da me.

    Ho realizzato una query per sapere quanti gol ha effettuato X giocatore durante un incontro ben definito.

    Nell'allegato trovate lo schema logico delle varie relazioni.

    E questo è il relativo codice generato:

    SELECT Count(id_gol) AS gol_Eseguiti
    FROM squadra AS squadra_A INNER JOIN ((squadra AS squadra_B INNER JOIN partita ON squadra_B.id_squadra = partita.id_squadrab) INNER JOIN (giocatore INNER JOIN gol_fatti ON giocatore.id_giocatore = gol_fatti.id_giocatore) ON partita.id_partita = gol_fatti.id_partita) ON squadra_A.id_squadra = partita.id_squadra
    WHERE (((giocatore.nome)="Francesco") AND ((giocatore.cognome)="Pedone"));


    Che funge perfettamente su Mysql. Ora la mia domanda è: come ci arriva a creare una doppia parentesi tonda fra il primo inner join e a chiuderla fra gol_fatti.id_partita? Inoltre: esiste la possibilità di avere il medesimo risultato con un codice un pò più semplificativo??

    Oltre a questo,se provassi ad unire nello schema E/R la primary Key di squadra_A con giocatore.id_squadra al fine di sapere in che squadra gioca X giocatore,mi restituisce il seguente codice:

    SELECT Count(id_gol) AS gol_Eseguiti
    FROM squadra AS squadra_A INNER JOIN ((squadra AS squadra_B INNER JOIN partita ON squadra_B.id_squadra = partita.id_squadrab) INNER JOIN (giocatore INNER JOIN gol_fatti ON giocatore.id_giocatore = gol_fatti.id_giocatore) ON partita.id_partita = gol_fatti.id_partita) ON (squadra_A.id_squadra = giocatore.id_squadra) AND (squadra_A.id_squadra = partita.id_squadra)
    WHERE (((giocatore.nome)="Francesco") AND ((giocatore.cognome)="Pedone"));


    a che serve quel "AND" li? Ci arrivo al fatto che collega le varie tabelle..ma perchè non utilizza un altro INNER JOIN? Vi ringrazio in anticipo e sopratutto per la pazienza ragazzi
    Immagini allegate Immagini allegate

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.