Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043

    selezionare più tabelle

    ciao a tutti
    vorrei selezionare i dati da più tabelle e ho fatto in questo modo:

    Codice PHP:
    <?php 
    $query 
    "
    SELECT a_allievi.id_allievi, a_corsi.id_corsi, a_allievi.cognome, a_corsi.nome_corso, a_corsi_allievi.id_corsi_allievi 
    FROM a_allievi, a_corsi, a_corsi_allievi 
    WHERE a_corsi_allievi.id_allievi=a_allievi.id_allievi AND a_corsi_allievi.id_corsi=a_corsi.id_corsi
    "
    ;
    ?>
    ma non funziona, mi dite perfavore se ho scritto giusto?

    queste sono le tabelle:

    • tabella (a_corsi) = campi (id_corsi, nome_corso)
      tabella (a_allievi) = campi (id_allievi, cognome)
      tabella (a_corsi_allievi) = campi (id_corsi_allievi, id_corsi, id_allievi)

  2. #2
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    codice:
    SELECT * FROM a_allievi
    LEFT JOIN a_corsi_allievi USING(id_allievi)
    LEFT JOIN a_corsi USING(id_corsi)
    Ma a cosa ti serve il campo "id_corsi_allievi" nella tabella "a_corsi_allievi" ? Dovrebbero bastare i soli campi id_corsi e id_allievi per creare la relazione tra allievo/corso...

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Originariamente inviato da neida
    codice:
    SELECT * FROM a_allievi
    LEFT JOIN a_corsi_allievi USING(id_allievi)
    LEFT JOIN a_corsi USING(id_corsi)
    Ma a cosa ti serve il campo "id_corsi_allievi" nella tabella "a_corsi_allievi" ? Dovrebbero bastare i soli campi id_corsi e id_allievi per creare la relazione tra allievo/corso...
    ciao neida.
    Pensavo mi servisse, avevo preso l'esempio da un'altra discussione che ho letto nel forum, ma evidentemente non faceva al caso mio, lo cancello subito.
    Ora inserisco nella pagina il codice che mi hai dato.

  4. #4
    Io farei cosi

    relazione 1 a n tra allievi e corsi:

    tabella (a_corsi) = campi (id_corsi, nome_corso)
    tabella (a_allievi) = campi (id_allievi, id_corsi,cognome)


    Codice PHP:

    $sql
    ="SELECT a_corsi.nome_corso,a_allievi.cognome FROM a_corsi,a_allievi WHERE
            a_corsi.id_corsi=a_allievi.id_corsi"

    ovvero ogni corso ha più studenti..
    Se è questo quello che vuoi fare.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Originariamente inviato da 19pantarei75
    Io farei cosi

    relazione 1 a n tra allievi e corsi:

    tabella (a_corsi) = campi (id_corsi, nome_corso)
    tabella (a_allievi) = campi (id_allievi, id_corsi,cognome)


    Codice PHP:

    $sql
    ="SELECT a_corsi.nome_corso,a_allievi.cognome FROM a_corsi,a_allievi WHERE
            a_corsi.id_corsi=a_allievi.id_corsi"

    ovvero ogni corso ha più studenti..
    Se è questo quello che vuoi fare.
    però nel mio caso il rapporto tra le tabelle è molti a molti perchè un allievo può aver fatto più corsi e i corsi sono frequentati da più allievi.
    Per questo le tabelle le ho fatte cosi:

    tabella (a_corsi) = campi (id_corsi, nome_corso)
    tabella (a_allievi) = campi (id_allievi, cognome)
    tabella (a_corsi_allievi) = campi (id_corsi, id_allievi)

  6. #6
    Io metterei un altro campo in allievi per esempio num_corsi_effettuati e lascerei corsi -allievi 1 a n.

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.