2015-05-01 3 views
0

Вот как выглядят мои данные.Получение значения на основе условий из нескольких строк

This is what my data looks like

Мне нужно получить значение info_id на основе условий, из двух разных строк. Используя приведенные выше данные в качестве примера, я хочу проверить, связан ли info_id с строкой, где (field_id = 298 и value = 213) И с строкой, где (field_id = 299 и value = 216). В этом случае запрос должен вернуть 35.

+1

'И ALSO'? Разве вы не имеете в виду «ИЛИ»? –

+0

И ТАКЖЕ, а не ИЛИ – Alvin

+0

Ну, так как 'AND ALSO' недействителен синтаксис SQL,' OR' будет делать то, что вам нужно. Если это не то, что вы имеете в виду, вам нужно прояснить, что именно вы хотите. –

ответ

1

Это звучит, как вы описываете это ...

SELECT 
    t1.info_id 
FROM Table1 t1 
INNER JOIN Table1 t2 
    ON t1.info_id = t2.info_id 
WHERE 
    (t1.field_id = 298 AND t1.value = 213) AND 
    (t2.field_id = 299 AND t2.value = 216); 

Выход:

| info_id | 
|---------| 
|  35 | 

SQL Fiddle Example

0
SELECT field_id, value where (field_id = 298 AND value = 213) OR (field_id = 299 and value 216); 

Я пропустил что-то или что-то подобное? В принципе, вы хотите получить две строки с одной строкой, если field_id = 298, а в другой строке - field_id = 299?

+0

Не это И, а не ИЛИ, я хочу получить info_id, где встречаются два из кодов. – Alvin

+0

wait, возможно ли, что один столбец в строке имел два значения? (для числового курса). Может быть, нам нужно посмотреть вашу схему. и примерный случай. –

+0

Возможно, информация (info_id) имеет несколько полей (field_id) – Alvin