ВЫБЕРИТЕ имя из таблицы, где имя в массиве и значение = 0 || 1 в зависимости от имени - PullRequest
0 голосов
/ 06 июля 2018

Я хочу получить некоторые данные, но запрос доставляет мне проблемы. Я пробовал много разных вещей, но, похоже, не могу их получить. Приведенная ниже информация сильно упрощена, но должна дать мне основу для того, что мне нужно.

table
id name value
0 config1 1
0 config2 0
1 config1 0
1 config2 0
2 config1 0
2 config2 1
3 config1 1
3 config2 1

так что я хочу сделать:

ВЫБРАТЬ * ИЗ таблицы ГДЕ (имя = 'config1' И значение = '1') И (имя = 'config2' И значение = '0')

результаты, которые я хочу увидеть:

config1 1 (this is the only important one)
config2 0 (I don't really care to see this row either)

В основном я хочу получить данные только для чего-либо с именем config1, имеющего значение 1, но только если config2 имеет значение 0. ПРИМЕЧАНИЕ. Предположим, у меня нет доступа к идентификатору (он сгенерирован из другого запроса и запрос, который мы выполняем, фактически выполняется на разных БД, поэтому пары фактически уникальны для каждой БД, у нас может быть только один config1 или один config2 на БД).

1 Ответ

0 голосов
/ 06 июля 2018

Попробуйте это:

SELECT * FROM table 
WHERE name = 'config1' AND value = '1'
AND id IN (SELECT id FROM table WHERE name = 'config2' AND value = '0')

http://sqlfiddle.com/#!17/9bdef/3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...