1

我试图简单地从表中读取一个值,并根据返回值调用其他查询并返回组合结果。

让我们举一个简单的例子:表Usersidname并且emailid 假设如果emailid不为空,我们想调用电子邮件表并返回类似的结果{ id:[id], name:[name], email:[email]}

4

1 回答 1

1

使用pg-promise支持的最新语法:

db.task(t => {
    return t.map('SELECT * FROM Users', [], user => {
        return user.emailid ?
            t.one('SELECT * FROM Emails WHERE id = $1', user.emailid, e=> {
                user.email = e.email;
                return user;
            }) : user;
    }).then(t.batch);
})
    .then(data => {
        // success
    })
    .catch(error => {
        // error
    });

请参阅 API:Database.mapDatabase.one

另请参阅相关问题:Get a parents + children tree with pg-promise


注意:更好的方法是使用带有INNER JOIN.

于 2016-06-29T07:40:05.010 回答