在Postgresql中递归获取用户

时间:2017-01-20 10:00:44

标签: sql node.js postgresql

我有一个普通的用户表:

Users: ID-NAME

然后我有一个Connections-table:

Connections: ID-MASTER_ID-SLAVE_ID

以下是一些用户:

INSERT INTO Users VALUES(1, 'Mark');
INSERT INTO Users VALUES(2, 'Jack');
INSERT INTO Users VALUES(3, 'John');
INSERT INTO Users VALUES(4, 'Steve');

以下是一些联系:

INSERT INTO Connections VALUES(null, 1, 3);
INSERT INTO Connections VALUES(null, 1, 4);
INSERT INTO Connections VALUES(null, 2, 3);

现在,如果我想查看连接列表,我会:

Connections for Master Mark: John and Steve
Connections for Master Jack: John

如果我需要获取,分组,John的所有连接以及该组中的所有用户,我可以看到我需要获取两个组:

Mark's group and Jack's group. 

这是因为约翰是两者的奴隶。

当然,我可以做一段时间的陈述。但是当我使用node.js进行异步编程时,它变得很困难。最好的方法是获得John所属的所有组以及该组中的用户。所以结果将是两行:

ROW1: Group owned by Mark With users: "John" and "Steve"
ROW2: Group owned by Jack With users: "John"

使用单个查询是否有简单的方法可以执行此操作,还是需要创建存储过程?

0 个答案:

没有答案