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

    Query con filtro dei dati

    Ciao a tutti! Ho una tabella di questo genere

    ID-----Cod-----IdA----IdB
    10-----123-----7------7
    11-----123-----8------7
    14-----123-----10-----8
    15-----123-----7------8
    16-----123-----7------9
    17-----123-----11-----9
    18-----123-----7------10
    19-----123-----12-----10

    Da questa tabella devo selezionare le righe che hanno in IdA i valori 7 e 8 ma che hanno anche lo stesso valore in IdB. Il valore di IdB non lo conosco a priori quindi non posso mettere una clausola WHERE IdB=7.

    Facendo una query così
    codice:
    SELECT * FROM tab1 WHERE IdA=7 OR IdA = 8
    mi restituisce anche le righe con ID 15, 16 e 18 mentre io sono interessato solo alle righe con ID 10 e 11 ovvero alle righe che hanno entrambi i valori di IdA che ho specificato nella WHERE e hanno entrambe lo stesso valore di IdB. C'è un modo per filtrare i dati in questo modo?
    Grazie!!
    Lunga vita e prosperità!!
    Usa Mozilla! http://www.mozilla.com

  2. #2
    SELECT * FROM tab1 WHERE (IdA=7 OR IdA = 8) AND (IdB=7 OR IdB = 8)

    that easy!

  3. #3
    Originariamente inviato da optime
    SELECT * FROM tab1 WHERE (IdA=7 OR IdA = 8) AND (IdB=7 OR IdB = 8)

    that easy!
    Nel messaggio ho scritto che non conosco a priori il valore di IdB.... Quindi non posso fare questa query!! Se conoscevo già i valori di IdB era fatta ma non li conosco.. In pratica devo selezionare righe con gli IdA che io passo alla query e che hanno lo stesso valore di IdB ma che non conosco..
    Lunga vita e prosperità!!
    Usa Mozilla! http://www.mozilla.com

  4. #4
    codice:
    select tab2.*
    FROM tab1, tab2
    where tab1.idA=...
    and tab1.ida = tab2.idB
    UNION
    select A.*
    FROM tab1
    where tab1.idA=...
    Molto probabilmente c'è modo di farlo anche con un query sola ma a quest'ora il cervello non mi aiuta.

  5. #5
    codice:
    select tab2.*
    FROM tab1, tab2
    where tab1.idA=...
    and tab1.ida = tab2.idB
    UNION
    select A.*
    FROM tab1
    where tab1.idA=...
    Scusa ma tab2 da dove salta fuori? E poi comunque siamo sempre lì.. mi hai messo un IdA=IdB che non ci deve essere. In pratica a me serve una query che mi tira fuori le righe che hanno lo stesso valore di IdB e che soddisfano i filtri su IdA della query.
    Lunga vita e prosperità!!
    Usa Mozilla! http://www.mozilla.com

  6. #6
    Si scusa non lo avevo specificato ma Tab2 è sempre la stessa tabella.
    2 Cosa come pensi di filtrare i dati di una colonna senza specificarne i valori ?
    Facciamo una cosa analizzo la tua richiesta
    selezionare righe con gli IdA che io passo alla query e che hanno lo stesso valore di IdB ma che non conosco..
    I valori di "IdA" che io passo alla query e che hanno lo stesso valore di IdB "ma che non conosco"...
    Io da questo deduco che se :
    IdA = [T] e se IdB=[N] e tu vuoi che IdA = IdB allora per deduzione "matematica" :
    T = N quindi ?

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