|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2007
Messaggi: 1469
|
[SQL] Select termine da tabella con confronto con valori di altre tabelle
Ciao a tutti, ho un problema con una query SQL.
Ho 2 tabelle contenenti nomi di sportivi. La prima tabella contiene nomi di calciatori, la seconda contiene nomi di pallavolisti. Le due tabelle si chiamano: CALCIO-PALLAVOLO e hanno solo 2 colonne ciascuna: id e nome Il web service che ho fatto analizza un testo ed estrae dei nomi, poi li inserisce nelle 2 rispettive tabelle. Successivamente devo estrarre i nomi presenti nella tabella CALCIO, che non sono presenti anche nella tabella PALLAVOLO. La query che ho scritto è questa: Codice:
SELECT nome FROM calcio WHERE nome <> (SELECT nome FROM pallavolo) INTERSECT (SELECT nome FROM calcio); "more than one row returned by a subquery used as an expression" Mi aiutate a correggere la query?
__________________
Ho concluso transazioni con: gimor78, Taz83, Phopho, HighVoltage, PsychoWood, lexman, sandru, Alkaiser, Baccomatto, selu, Chris70, devil_luca, Novus88, anakin71, redpepper, renatofast, nucatolo, 8310, JeanCaneo e sirjd |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2007
Messaggi: 1469
|
edit:
ho realizzato questa query Codice:
SELECT DISTINCT nome FROM calcio,pallavolo GROUP BY calcio,pallavolo HAVING calcio.nome <> pallavolo.nome;
__________________
Ho concluso transazioni con: gimor78, Taz83, Phopho, HighVoltage, PsychoWood, lexman, sandru, Alkaiser, Baccomatto, selu, Chris70, devil_luca, Novus88, anakin71, redpepper, renatofast, nucatolo, 8310, JeanCaneo e sirjd |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2007
Città: Bergamo
Messaggi: 307
|
Se stai usando un DB che ha l'operatore "minus" puoi fare:
Codice:
select nome from calcio minus select nome from pallavolo |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Aug 2007
Messaggi: 1469
|
Quote:
Mitico, mi hai fatto ricordare dell'operatore EXCEPT che c'è in Postgres...ora faccio subito la prova Speriamo bene...
__________________
Ho concluso transazioni con: gimor78, Taz83, Phopho, HighVoltage, PsychoWood, lexman, sandru, Alkaiser, Baccomatto, selu, Chris70, devil_luca, Novus88, anakin71, redpepper, renatofast, nucatolo, 8310, JeanCaneo e sirjd |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Aug 2007
Messaggi: 1469
|
Ok con l'except funziona, grazie mille
Ora vorrei fare un ulteriore upgrade alla query. Ho un'altra tabella LISTA che contiene anch'essa due colonne: id, nome. Vorrei che la query estraesse i nomi presenti sempre nella tabella CALCIO, ma non contenuti nella tabella PALLAVOLO e che il nome non faccia parte del campo nome della tabella LISTA. Ad esempio: CALCIO 01 Mauro Bianchi 02 Carlo Rossi 03 Stefano Verdi PALLAVOLO 01 Mauro Bianchi 02 Luca Neri LISTA 01 Gian Carlo Rossi 02 Piero Gialli La query dovrà estrarre solo Stefano Verdi, perchè Mauro Bianchi è presente nella tabella PALLAVOLO e Carlo Rossi è parte di un nome contenuto in LISTA. Come potrei fare?? Esiste l'operatore LIKE che permette di settare dei pattern per fare delle verifiche, però non sapendo a priori il pattern, come posso fare?? Grazie
__________________
Ho concluso transazioni con: gimor78, Taz83, Phopho, HighVoltage, PsychoWood, lexman, sandru, Alkaiser, Baccomatto, selu, Chris70, devil_luca, Novus88, anakin71, redpepper, renatofast, nucatolo, 8310, JeanCaneo e sirjd |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Aug 2007
Messaggi: 1469
|
Non c'è una soluzione??
__________________
Ho concluso transazioni con: gimor78, Taz83, Phopho, HighVoltage, PsychoWood, lexman, sandru, Alkaiser, Baccomatto, selu, Chris70, devil_luca, Novus88, anakin71, redpepper, renatofast, nucatolo, 8310, JeanCaneo e sirjd |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:25.



















