Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    36

    Query per recupero records con diversi valori nello stesso campo

    Ciao a tutti,


    ho un problema a creare una query.


    La mi tabella è formata cosi:


    user_id attributo_id
    1 2
    1 4
    1 5
    2 2
    2 5
    3 1

    Adesso non riesco a recuperare per esempio gli user_id che hanno come attributo_id sia il 2 che il 4.

    Ho provato a far cosi:

    Select * from nometabella where attributo_id ="2" and attributo_id ="4"

    pero facendo cosi mi recupera sia quelli che hanno solo il 2 sia quelli che hanno solo il 4.


    Invece ho l'esigenza di recuperare solo gli utenti che hanno entrambi gli attributo_id

    qualcuno ha la soluzione?

    grazie

  2. #2
    ciao,

    prova cosi : Select * from nometabella where attributo_id IN("2" ,"4")


    comunque, che dbms usi?

    Se 2 e 4 sono stringhe di solito si indicano cosi '2', '4' quindi sono curioso di conoscere il dbms
    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
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    36
    Quote Originariamente inviata da bomberdini Visualizza il messaggio
    ciao,

    prova cosi : Select * from nometabella where attributo_id IN("2" ,"4")


    comunque, che dbms usi?

    Se 2 e 4 sono stringhe di solito si indicano cosi '2', '4' quindi sono curioso di conoscere il dbms
    Grazie per la risposta il database che uso è MySql e avevo già provato ad usare una query con IN ma mi rallentava molto l'esecuzione anche perchè i risultati arrivano da tre tabelle unite con join

  4. #4
    scusa, ma come fa a restituirti qualcosa questa query

    Select * from nometabella where attributo_id ='2' and attributo_id ='4'

    ????

    attributo_id NON può essere *contemporaneamente* 2 E 4

    casomai sarà

    Select * from nometabella where attributo_id ='2' OR attributo_id ='4'

    che poi è uguale alla IN()

  5. #5
    SELECT COUNT(*), USER_ID
    FROM nometabella
    WHERE attributo_id ='2' OR attributo_id ='4'
    GROUP BY USER_ID
    HAVING COUNT(*)>1

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.