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

    Select Multipla difficile

    Ciao,
    io ho due tabelle:
    1 corsi
    2 iscritti

    da cui devo prendere (sto cercando con una query sola) tutti i corsi e contare gli iscritti per ogni corso.
    Ho provato con la seguente:
    SELECT a.idCorso, a.nomeCorso, a.postiTotaliCorso, a.statoCorso, COUNT(b.idIscritto) as iscrittiTotaliCorso FROM corsi AS a, iscritti AS b WHERE a.idCorso=b.idCorso

    ma mi restituisce solo i corsi dove effettivamente c'è un'iscritto, mentre quelli senza iscritti non avendo un idCorso nella tabella iscritti non vengono visualizzati. Ho modo di farlo comunque o devo fare due query e poi confrontare con php?

  2. #2

    Re: Select Multipla difficile

    Originariamente inviato da lorenzos
    Ciao,
    io ho due tabelle:
    1 corsi
    2 iscritti

    da cui devo prendere (sto cercando con una query sola) tutti i corsi e contare gli iscritti per ogni corso.
    Ho provato con la seguente:
    SELECT a.idCorso, a.nomeCorso, a.postiTotaliCorso, a.statoCorso, COUNT(b.idIscritto) as iscrittiTotaliCorso FROM corsi AS a, iscritti AS b WHERE a.idCorso=b.idCorso

    ma mi restituisce solo i corsi dove effettivamente c'è un'iscritto, mentre quelli senza iscritti non avendo un idCorso nella tabella iscritti non vengono visualizzati. Ho modo di farlo comunque o devo fare due query e poi confrontare con php?
    dovresti usare left join in modo di avere tutti i record di corsi.

    codice:
    SELECT a.idCorso, a.nomeCorso, a.postiTotaliCorso, a.statoCorso, 
    COUNT(b.idIscritto) as iscrittiTotaliCorso 
    FROM corsi AS a
    LEFT JOIN AS b USING(idCorso)
    GROUP BY a.nomeCorso

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    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 'AS b USING(idCorso) GROUP BY a.nomeCorso

  4. #4
    Originariamente inviato da lorenzos
    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 'AS b USING(idCorso) GROUP BY a.nomeCorso
    con un po' di fantasia puoi risolvere da te. manca il nome della tabella

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Hai ragione scusa, ero di fretta e non conosco il left join fatto così...
    Ora provo.

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.