Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Inner Join tra due relazioni che hanno un'associazione N-M

    Salve a tutti. Qualcuno sa dirmi come faccio a fare una una join usando la clausola INNER JOIN tra due relazioni che hanno un'associazione N-M?

    Esempio, ho queste tre relazioni:

    STUDENTI:{matr, cognome, nome}
    ESAMI:{matr, codcorso}
    CORSI:{codcorso, docente}

    In questo caso le relazioni Studenti e Corsi hanno un'associazione N-M dalla quale nasce la relazione figlia "Esami".
    Come faccio a selezionare tutti gli studenti ed tutti i docenti alla quale hanno avuto a che fare?

    Ho provato così: SELECT studenti.cognome, esami.matr, esami.codcorso, corsi.docente FROM studenti INNER JOIN esami, corsi ON studenti.matr = esami.matr AND esami.codcorso = corsi.codcorso

    E questo l'errore che viene restituito: "#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ON studenti.matr = esami.matr AND esami.codcorso = corsi.codcorso LIMIT 0, 30' at line 1"

    Ho provato anche: SELECT studenti.cognome, esami.matr, esami.codcorso, corsi.docente FROM studenti, corsi INNER JOIN esami ON studenti.matr = esami.matr AND esami.codcorso = corsi.codcorso

    E questo l'errore che viene restituito: "#1054 - Unknown column 'studenti.matr' in 'on clause'"

    Insomma, come posso fare?

  2. #2
    codice:
    SELECT studenti.cognome, esami.matr, esami.codcorso, corsi.docente FROM studenti INNER JOIN esami ON studenti.matr = esami.matr INNER JOIN corsi ON esami.codcorso = corsi.codcorso
    cosi' funziona?


    ciao
    danno

  3. #3
    Originariamente inviato da dannowonder
    codice:
    SELECT studenti.cognome, esami.matr, esami.codcorso, corsi.docente FROM studenti INNER JOIN esami ON studenti.matr = esami.matr INNER JOIN corsi ON esami.codcorso = corsi.codcorso
    cosi' funziona?


    ciao
    danno
    No.
    Ho risolto così:

    codice:
    SELECT studenti.cognome, esami.matr, esami.codcorso, corsi.docente FROM studenti INNER JOIN (esami INNER JOIN corsi ON esami.codcorso = corsi.codcorso) ON studenti.matr = esami.matr

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 © 2025 vBulletin Solutions, Inc. All rights reserved.