2016-03-23 3 views
0

У меня есть таблица с тремя столбцами. Я хочу выбрать данные по списку данных.Как выбрать строку данных по списку данных

Table 1 

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

У меня есть этот список в качестве ключа для выбора:

key1 key2 
12  A 
17  C 
13  D 

и результат должен быть:

100 
56 
600 

ответ

1

Неясно мне, что вы имеете в виду с «списка данных», но если таковые есть две таблицы, вы можете сделать:

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

Можно также указать значения непосредственно:

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

Спасибо, это хорошо работает :)) –

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


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

Вы можете сделать что-то вроде этого

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

Да, вы правы, можете использовать CONCAT вместо –

+0

Это привело бы к неправильным результатам, если в таблице есть «12», «1» в таблице и «1, 21» в списке значений. –

+0

да, но key2 - это алфавит, а не номер –

0

Там в нет смысла для «списка данных» в SQL. Но если вы хотите отобразить результат, о котором вы говорили выше. Используйте этот код:

Выберите значение из таблицы 1 Где (ключ1, ключ2) в ((12, 'A'), (17, 'C'), (13, 'D'));

Смежные вопросы