Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Problema select

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    155

    Problema select

    Ciao a tutti, credo che non sia il forum guiusto, ma non sapevo dove postar eil mio problema...scusate

    Ho un problema di select sql:
    Ho 2 tabelle: allievo e allievo_esercizio

    vorrei ricavare la data dell'ultimo esercizio che ha fatto l'allievo (campo all_esercizio_data) e gli altri dati dell'allievo.
    Il tutto funziona, faccio una join tra le 2 tabelle, faccio max(all_esercizio_data) e group by all_id.
    Il problema è che vorrei anche che mi mostrasse gli allievi che non hanno ancora fatto esercizi...come posso fare???

    Grazie mille


  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923

    Re: Problema select

    Originariamente inviato da sarto76
    Il problema è che vorrei anche che mi mostrasse gli allievi che non hanno ancora fatto esercizi...come posso fare???

    Grazie mille

    codice:
    select quello_che_vuoi from allievo
    left join allievo_esercizio
    on allievo.id = allievo_esercizio.chiave_esterna_allievo
    where allievo_esercizio.chiave_esterna_allievo is null

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    155
    Grazie per la risposta, ma non credo di essermi spiegato bene:
    La mia select è la seguente:

    Codice PHP:
    select max(all_for_data) as ' Ultimo Accesso ',all_nome ,all_cognome 
    from allievo
    ,allievo_formulario 
    where allievo_formulario
    .fk_allievo=allievo.all_id 
    group by all_id 
    con questa mi dà gli allievi che voglio, con il loro ultimo formulario (max(all_for_data) ).
    Il problema è che oltre a questi allievi che hanno fatto alcuni formulari, ne ho altri che non ne hanno fatti, quindi non avranno records nella tabella allievo_formulario.
    Vorrei che si potessero vedere anche loro
    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    155

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Per visualizzare tutti i record devi ricorrere alla funzione ifnull()

    http://dev.mysql.com/doc/refman/5.0/...unction_ifnull

    Nel caso avessi ancora problemi posta un dump delle tue tabelle.

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    155
    grazie della risposta, ma come dovrei usarlo per la mia select che ho postato prima?
    Non ho capito molto bene come funziona...
    grazie

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Se come ti avevo già chiesto posti un dump delle tabelle popolate con qualche record fittizio di esempio posso essere più preciso.

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Dai uno sguardo a questo thread

    http://forum.html.it/forum/showthrea...readid=1368710

    dove veniva posto un problema analogo al tuo.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    155
    Ciao Nicola, ho provato anche con il link che mi hai dato ma non ce la faccio...
    Provo a postarti le 2 tabelle con alcuni records. Le 2 tabelle sono allievo ed allievo formulario e si legano allieme tramite fk_allievo.
    Se qualcuno riesce ad aiutarmi sarei felicissimo

    [list]
    Immagini allegate Immagini allegate

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Vedi se così va bene

    codice:
    select allievo.*,ifnull(tab3.es,0) as maggiore from allievo
    left join (
    select tab1.fk_allievo,tab1.es
    from
    (select fk_allievo, max(all_for_data) as es from allievo_formulario
    group by fk_allievo) as tab1
    left join allievo_formulario as tab2 ON tab1.es = tab2.all_for_data
    where tab1.fk_allievo = tab2.fk_allievo) as tab3
    on allievo.all_id = tab3.fk_allievo

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