Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    140

    Tabelle relazionate (solo esperti)

    Ho 2 tabelle :
    1° tabella) UTENTI con il campo id_utente
    2° tabella) IMMAGINI con il campo id_utente e tipo_immagine che può essere 0 se è la prima immagine inserita oppure 1 se è la 2/3/4 immagine inserita

    Con una sola query vorrei far visualizzare l'immagine di tutti gli utenti che hanno il campo tipo_immagine=0 mentre per quelli che non hanno nessuna immagine oppure hanno immmagini con tipo_immagine=1 vorrei far visualizzare una foto standard.

    Questa è la query che ho usato
    SELECT * FROM UTENTI LEFT JOIN IMMAGINI ON UTENTI.id_utente=IMMAGINI.id_utente GROUP BY IMMAGINI.id_utente

    questa query funziona bene se nella tabella IMMAGINI ci sono questi dati in questa sequenza :
    id_utente=5 tipo_immagine=0
    id_utente=5 tipo_immagine=1
    id_utente=5 tipo_immagine=1

    ma NON funziona se nella tabella IMMAGINI ci sono questi dati con questa sequenza :
    id_utente=5 tipo_immagine=1
    id_utente=5 tipo_immagine=0
    id_utente=5 tipo_immagine=1
    perchè mi visualizza la foto con tipo_immagine settata ad 1 invece che quella settata a 0 in quanto raggruppando per id_utente il primo record ha il campo tipo_immagine=1

    Sapete aiutarmi ? Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    140
    Qualche esperto che mi sà aiutare ??

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    140
    niente...nessuno mi sà aiutare...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    140
    Nessun utente esperto che mi sà dare una mano ?

  5. #5
    Originariamente inviato da g.a.mimmo
    niente...nessuno mi sà aiutare...
    Non ci vuole il superesperto, basta analizzare la richiesta.

    Se immagini = 0 ce ne potra' essere 1 sola per utente, cerca quella e basta.
    codice:
    SELECT * 
    FROM UTENTI u
    LEFT JOIN IMMAGINI i ON u.id_utente = i.id_utente
    where i.tipo_immagine = '0'
    Direi anche che: siccome 0 (zero) e' pure il default del campo numerico sarebbe meglio fosse

    0=nessuna foto,
    1=prima_foto
    2=foto_ulteriori.




    ps.. Se metti superesperto nel titolo non ti rispondera' nessuno. Qui non ce ne sono. Son andati tutti alla microsoft.

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

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    140
    Originariamente inviato da piero.mac
    Non ci vuole il superesperto, basta analizzare la richiesta.

    Se immagini = 0 ce ne potra' essere 1 sola per utente, cerca quella e basta.
    codice:
    SELECT * 
    FROM UTENTI u
    LEFT JOIN IMMAGINI i ON u.id_utente = i.id_utente
    where i.tipo_immagine = '0'
    Direi anche che: siccome 0 (zero) e' pure il default del campo numerico sarebbe meglio fosse

    0=nessuna foto,
    1=prima_foto
    2=foto_ulteriori.




    ps.. Se metti superesperto nel titolo non ti rispondera' nessuno. Qui non ce ne sono. Son andati tutti alla microsoft.
    E' qui il problema !!
    Così come imposti tu la query mi vengono visualizzati solo coloro che hanno la prima foto inserita mentre io voglio che vengano visualizzati comunque tutti gli utenti se poi qulcuno non ha la prima foto(cioè quella impostata a 0) allora mi deve visualizzare un'altra immagine

  7. #7
    Ma se non ci sono immagini che valore hai?.... . il group by ti trova il primo che trova come hai visto.
    codice:
    SELECT * 
    FROM UTENTI u
    LEFT JOIN IMMAGINI i ON u.id_utente = i.id_utente
    where i.tipo_immagine != '1'


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

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    140
    Originariamente inviato da piero.mac
    Ma se non ci sono immagini che valore hai?.... . il group by ti trova il primo che trova come hai visto.
    codice:
    SELECT * 
    FROM UTENTI u
    LEFT JOIN IMMAGINI i ON u.id_utente = i.id_utente
    where i.tipo_immagine != '1'

    Stiamo sempre lì i.tipo_immagine = '0' o i.tipo_immagine != '1' è come scrivere la stessa cosa...visualizza solo quelli che hanno l'immagine tipo 0 ma non quelli che non ce l'hanno oppure che hanno solo immagini settate ad 1...

  9. #9
    Gia'... sicuramente tu sai come e' il tuo db. Ma lo sai solo tu.

    Ti ho risposto in base alle tue info. parli di campi 0 oppure 1 e null'altro. rileggi bene il tuo primo post.


    ciao.



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

  10. #10
    io progetterei le tabelle in modo diverso

    nella tabella UTENTI inserisco un campo nuovo: prima_foto

    nelal tabelal IMMAGINI metto tutte le altre foto

    cosi fai una select solo su utenti se il campo prima_foto di ogni record e' settato metti quell'imamgine se no uan di default

    io faccio cosi solitamente, noncosnidero prima_foto coem un'immagine ma come un dato anagrafico dell'utente quindi anche a logica ci sta che stia nella tabella utenti, tanto sai che ce ne puo' essere solo una, poi gisutamente fai la tabella IMMAGINI per le n foto che ogni utente puo' inserire
    http://www.mcganass.com

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.