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

    [SQL] Select a più campi da tabelle diverse

    Ciao a tutti!

    Ho una tabella STANZA(ID, nome) e una tabella LEZIONE(ID, giorno, ora, IDstanza).
    Che selezione devo fare per ottenere una lista lezione.giorno, lezione.ora, stanza.nome quando lezione.ID = 123?

    Grazie & saluti!

  2. #2
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    SELECT * from STANZA LEFT JOIN LEZIONE ON STANZA.ID = LEZIONE.IDstanza WHERE LEZIONE.id='$id'


    se invece vuoi visualizzare tutti gli orari di una stanza devi fare così:

    SELECT * from STANZA LEFT JOIN LEZIONE ON STANZA.ID = LEZIONE.IDstanza WHERE STANZA.id='$id'

  3. #3
    Ciao e grazie per la risposta!
    Funziona alla perfezione!

    Ho ancora una domandina:
    ora ho aggiunto una tabella Docente(ID, Nome) e vorrei visualizzare il piano giornaliero per una data stanza in un dato giorno. Una cosa tipo:
    SELECT giorno, ora, persona WHERE stanza.ID = '$ID1' AND lezione.giorno = '$giorno';
    Come posso fare?

    Grazie ancora!

    Saluti!

  4. #4
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    non ho capito...

    se hai aggiunto una tabella docente, vuoi usarla oppure no?? :berto:
    comunque devi sempre usare left join.. ti consiglio di vedere in giro, sopratutto sul forum oltre che sul web, perchè è pieno di roba STRAutile...
    mi auto edito..
    prova così...
    SELECT * from lezione, stanza WHERE stanza.ID = '$ID1' AND lezione.giorno = '$giorno';

  5. #5
    Ciao!
    Sì che vorrei usare la tabella docente
    Provo a spiegarmi meglio (un po' di documentazione l'ho letta ma ancora devo impratichirmi :mrgreen: ):

    Ho queste ormai 4 tabelle:
    corso (ID, nome), stanza (ID, nome), lezione (giorno, ora, ID, IDcorso, IDaula, IDdocente), docente(ID, nome) e vorrei selezionare il giorno, l'ora, il nome della stanza, del corso e del docente delle lezioni che hanno luogo nella stanza x al giorno y.

    Sembra uno scioglilingua ma è così :mrgreen:
    In pratica vorrei ottenere il piano orario della stanza x al giorno y

    Grazie dell'attenzione
    Saluti!

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    scusami che ci ho messo un po' ma non avevo mai usato left join combinate e ho inserito questa tua richiesta nel lavoro ordinario...

    allora questa è la query:
    SELECT * FROM stanza LEFT JOIN lezione ON stanza.ID = lezione.IDcorso LEFT JOIN corso ON corso.ID = lezione.IDcorso LEFT JOIN docente ON docente.ID = lezione.IDdocente WHERE lezione.id = $id;

    io ho cambiato per facilitare i nomi alle tue tabelle: invece di usare il termine "nome" ogni volta ho usato nomeCORSO, nomeDOCENTE, nomeSTANZA.
    Altrimenti devi usare gli alias, che però non so come si usano...

    Per altre cose più complesse spero nell'aiuto di altri...

  7. #7
    Grande telegio!

    Grazie 1000! Anch'io ho letto un po' di tutorial ma una join combinata non l'avevo ancora vista.
    In effetti ho ancora un po' di problemini da risolvere ma adesso ci provo con le join multiple e casomai richiedo


  8. #8
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    Originariamente inviato da fabbio86
    Grande telegio!

    Grazie 1000! Anch'io ho letto un po' di tutorial ma una join combinata non l'avevo ancora vista.
    In effetti ho ancora un po' di problemini da risolvere ma adesso ci provo con le join multiple e casomai richiedo

    nemmeno io l'avevo mai vista...
    sul serio non sto scherzando...
    quando vuoi siamo tutti qua...

  9. #9
    Mi sa che non ho afferrato mica tanto le join combinate... Quindi rieccomi qui!

    quando vuoi siamo tutti qua..
    Grazie. Allora approfitto di cotale gentilezza per sparare tre nuove domandine:

    Premessa: ho aggiunto il campo posti, che indica la capienza della stanza, nella tabella stanza.
    1) E' possibile selezionare ogni stanza che offre almeno n posti e che è libera (cioè IDcorso = null) dalle x alle y del giorno z?

    2) E' possibile selezionare solo l'ultimo corso afferente al dipartimento di sociologia (che assumiamo essere caratterizzato da un IDcorso che inizia con "111*") che si tiene nei giorni da x a y?
    Ad esempio: se il giorno x ho analisi 1, sociologia 1, sociologia 2 e fisica vorrei selezionare solo sociologia 2. Se due corsi sono tenuti per ultimi in aule diverse allo stesso tempo vorrei selezionarli entrambi.

    3) Come posso realizzare un piano per il mese x per il professore y (persName) in modo da vedere visualizzato il giorno, l'ora di lezione, l'aula, il codice e il nome del corso?

    Grazie ancora dell'attenzione!

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.