Запрос с элементами зависит - PullRequest
0 голосов
/ 18 октября 2018

Существует база данных Postgres, и таблица имеет три столбца.

Каждая строка представляет объект:

key     value         element_id
--------------------------------
status  active        1
name    exampleName   1
city    exampleCity   1

Я хочу получить каждый столбец value из строки, где key=name, и если этот элемент имеет значение active в строке с key=status.

В этом примере результат должен быть exampleName, потому что этот элемент active.Я пытался присоединиться, но не пытался решить.Не могли бы вы помочь мне?

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Для этого вы должны присоединиться к таблице с самим собой:

SELECT names.value
FROM mytable AS names
JOIN mytable AS statuses USING(element_id)
WHERE names.key = 'name'
    AND statuses.key = 'status'
    AND statuses.value = 'active'
0 голосов
/ 18 октября 2018

Исходя из моего понимания, я думаю, что вы хотите это:

Попробуйте:

quantz=> select * from maya;
  key   |    value    | element_id 
--------+-------------+------------
 status | active      |          1
 name   | exampleName |          1
 city   | exampleCity |          1
(3 rows)


Select value 
From maya
WHERE key = 'name'
and element_id in (Select element_id from maya where key='status' and value='active')
;
    value    
-------------
 exampleName
(1 row)

Дайте мне знать, если это работает или нет?

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