2016-03-23 10 views
0

Ich habe Tabelle, die 3 Spalten hat. Ich möchte Daten nach Datenliste auswählen.So wählen Sie Datenreihe nach Liste der Daten

Table 1 

key1 key2  value 
12  A  100 
15  A  150 
17  C   56 
13  D  600 
12  C  100 
10  B   80 

Ich habe diese Liste als Schlüssel:

key1 key2 
12  A 
17  C 
13  D 

und das Ergebnis sein sollte:

100 
56 
600 

Antwort

1

Es ist mir unklar, was man mit „Liste der Daten“ bedeuten, aber wenn die beiden Tabellen sind, können Sie tun:

select value 
from table1 
where (key1, key2) in (select key1, key2 
         from table2); 

Sie können auch direkt die Werte liefern:

select value 
from table1 
where (key1, key2) in ((12,'A'), (17,'C'), (13,'D')); 
+0

Danke, es funktioniert gut :)) –

-1
select 
    value 
from 
    Table1 
where 
    key1 in (12, 17, 13) 


select 
    value 
from 
    Table1 
where 
    key1 in (select key1 from TableKeys) 
0

Sie so etwas wie dieses

tun können
select value from table1 where CONCAT(key1,key2) in (Select CONCAT(key1,key2) from table2) 
+0

ja Sie haben recht, kann CONCAT stattdessen verwenden –

+0

Das würde falsche Ergebnisse geben, wenn Sie '12, '1'' in der Tabelle und' 1,' 21'' in der Liste der Werte haben. –

+0

ja aber key2 ist ein Alphabet nicht eine Nummer –

0

dort ist keine Bedeutung für 'Liste der Daten' in SQL. Aber wenn Sie das oben erwähnte Ergebnis anzeigen möchten. Verwenden Sie diesen Code:

Wert aus Tabelle 1 auswählen Wo (Schlüssel1, Schlüssel2) in ((12, 'A'), (17, 'C'), (13, 'D'));

Verwandte Themen