Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Aiuto query sql

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    2

    Aiuto query sql

    ciao a tutti
    sto studiando sql e devo fare una query su un database così strutturato

    STUDENTI (Matricola, NomeS, CorsoLaurea*, AnnoN) CORSIDILAUREA (CorsoLaurea, TipoLaurea, Facoltà)
    FREQUENTA (Matricola*, CodCorso*)
    CORSI (CodCorso, NomeCorso, CodDocente*)
    DOCENTI (CodDocente, NomeD, Dipartimento)

    scrivendo una query come questa

    select corsi.codcorso
    from corsi
    inner join docenti on corsi.coddocente=docenti.coddocente
    where docenti.nomed='felice'

    la query funziona, ma quando la modifico x ottenere il conto di quanti studenti frequentano quel corso in questo modo:

    select corsi.codcorso,count(distinct frequenta.codcorso)
    from corsi,frequenta
    inner join docenti on corsi.coddocente=docenti.coddocente
    where docenti.nomed='felice'

    ho errore #1054 - Unknown column 'corsi.coddocente' in 'on clause'

    non so come sbrogliarla spero in qualche buon consiglio!

    Grazi

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    forse devi inserire group by


    select
    corsi.codcorso,
    count(distinct frequenta.codcorso)
    from corsi,frequenta
    inner join docenti on corsi.coddocente=docenti.coddocente
    where docenti.nomed='felice'
    group by
    corsi.codcorso

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    2
    Quote Originariamente inviata da 123delphi321 Visualizza il messaggio
    forse devi inserire group by


    select
    corsi.codcorso,
    count(distinct frequenta.codcorso)
    from corsi,frequenta
    inner join docenti on corsi.coddocente=docenti.coddocente
    where docenti.nomed='felice'
    group by
    corsi.codcorso

    Ciao grazie dell'interessamento, ma anche inserendo group by ho comunque lo stesso errore...


  4. #4
    E' presente un errore di sintassi.

    Quando scrivi:
    select corsi.codcorso,count(distinct frequenta.codcorso)
    from corsi,frequenta
    inner join docenti on corsi.coddocente=docenti.coddocente
    where docenti.nomed='felice'

    in pratica stai facendo frequenta inner join docenti (dunque tabelle interessate nel join : frequenta,docenti)

    poi pero' nella clausola on del join metti : corsi.coddocente ma la tabella corsi non e' interessata nel join quindi giustamente il dbms non conosce quel campo...
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

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.