Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Query Complicata!!!

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2016
    Messaggi
    1

    Query Complicata!!!

    Buonasera a tutti, non riesco proprio a trovare il bandolo della matassa.
    In un server mysql 5.5.50-0+deb7u2-log - (Debian)

    Ho due tabelle in cui non posso assolutamente modificare la struttura.

    Una prima tabella utenti con questi campi ( mostro gli indispensabili )
    e dati di esempio

    userid | nomeutente |
    1 pippo
    2 pluto

    e una seconda tabella valori con questi campi

    user_id | field_id | value
    1 19 Roma
    1 12 Spazzacamino
    2 19 Roma
    2 12 Abbaiatore

    in questa tabella il campo field_id quando è uguale a 19 il campo .value identifica la provincia dove si trova lo userid e quando è uguale a 12 identifica quello che fa

    come vorrei il risultato della mia query di ricerca basata sui campi provincia e professione

    utenti.userid | utenti.nomeutente | valori.Provincia | valori.Professione |

    ho provato unendo due select ma giustamente se cerco su roma e spazzacamino mi tira fuori anche l' abbaiatore che non cercavo.
    Sapete aiutarmi per favore che mi sto scervellando e non essendo troppo addentro non riesco proprio a trovare una soluzione.
    Grazie mille in anticipo.

  2. #2
    Quote Originariamente inviata da tixiano Visualizza il messaggio

    come vorrei il risultato della mia query di ricerca basata sui campi provincia e professione

    utenti.userid | utenti.nomeutente | valori.Provincia | valori.Professione |
    Ciao,

    Non mi é chiaro quello che vuoi ottenere. Fai un esempio grazie
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  3. #3
    Prova con una query nidificata

    codice:
    SELECT 
    u.user_id, u.nomeutente,
    if (field_id=12,value,'') as lavoro,
    
    (select value
    from valori as v2
    where v2.user_id = u.user_id and v2.field_id = 19) as provincia
    
    FROM utenti as u 
    LEFT JOIN valori as v ON u.user_id = v.user_id
    group by u.user_id

    sempre che abbia centrato il problema...

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Prova questo.

    codice:
    select userid, nomeutente, t2a.value, t2b.value
    from utenti
    inner join valori t2a on t2a.user_id = userid
    inner join valori t2b on t2b.user_id = userid
    where t2a.field_id = 19 and t2b.field_id = 12
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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.