ciao,
vorrei scrivere una query SQL che dati due insiemi di valori A{2,3,4,7,9} e B{3,4,5,6,8} restituisca i valori di A presenti in B
grazie
ciao,
vorrei scrivere una query SQL che dati due insiemi di valori A{2,3,4,7,9} e B{3,4,5,6,8} restituisca i valori di A presenti in B
grazie
Select a from tabella1
inner join tabella2 on a=b
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
a e b sono set di valori non campi
Una soluzione potrebbe essere
select 2 in (2,4,5)
che restituisce 1 quando 2 è presente in (2,4,5), altrimenti 0. Così però posso testare un valore per volta.
select 2,4 in (2,4,5) non fonziona perchè restituisce 2 in ogni caso e poi esegue il test tra 4 e (2,4,5)
Stai facendo confusione. In SQL la parola chiave in confrontra dei valori per restituire 0 (ovvero true) o 1 (ovvero false)non un valore.
Se vuoi ricavare dei valori devi per forza usare una struttura di dati.
L'esempio qui sotto funziona ma sarebbe molto meglio avere due vere tabelle.
codice:select * from ( select 2 as a union all select 3 union all select 5 union all select 8 union all select 9 ) AS tabella1 inner join ( select 2 as b union all select 3 union all select 4 union all select 7 union all select 9 ) AS tabella2 on tabella1.a=tabella2.b
Puoi anche dare un'occhiata qui http://stackoverflow.com/questions/1...iable-in-mysql
ma anche qui è molto macchinoso e non so se fa per te.
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
Si lo so che IN esegue un test, intendevo che in mancanza dei valori mi sarei accontentato di sapere se il valore è presente. L'esempio che hai postato funziona, ma non mi piace la complessità che ne deriva su insiemi grandi.
ti ringrazio per la risposta
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
Sono dati derivanti da un calcolo. Se la query che restituisce il sottoinsieme cercato fosse semplice potri usarla come subquery di una query più complessa e prendere decisioni sui dati a livello del database, semplificando il codice (c++) che li usa. In generale (se la complessità del codice che ne risulta è confrontabile) preferisco delegare il più possibile al server di database
Ok. Se ricavi il sottoinsieme da una tabella, puoi inserirne il risultato in un'altra magari temporanea.
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