pg-promise 的条件任务

Conditional task with pg-promise

我正在尝试简单地从 table 中读取一个值,并基于 return 值调用进行其他查询和 return 组合结果。

举个简单的例子: table Usersidnameemailid 假设 emailid 不为空,我们希望将电子邮件 table 和 return 称为 { id:[id], name:[name], email:[email]}.

这样的结果

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

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

参见API:Database.map, Database.one

另见相关问题:


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

的单个查询