postgresql самостоятельное присоединение - PullRequest
7 голосов
/ 13 апреля 2011

Скажем, у меня есть таблица, как это

  id  |     device     |  cmd  | value | 
------+----------------+-------+---------

id = unique row ID
device = device identifier (mac address)
cmd = some arbitrary command
value = value of corresponding command

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

Я не хочу просто SELECT cmd,value FROM table WHERE device='00:11:22:33:44:55';

Скажите, что нужные мне значения соответствуют командам getname и getlocation. Я хотел бы получить что-то вроде

        mac         |    name   | location
--------------------+-----------+------------
 00:11:22:33:44:55  | some name | somewhere

Мой sql fu - красивые штаны. Я пробовал разные комбинации, например SELECT a.value,b.value FROM table AS a INNER JOIN table AS b ON a.device=b.device, но ничего не получилось.

Спасибо за любую помощь.

1 Ответ

9 голосов
/ 13 апреля 2011
SELECT a.value AS thisval ,b.value AS thatval
FROM table AS a JOIN table AS b USING (device)
WHERE a.command='this' AND b.command='that';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...