pg-promise 的条件任务
Conditional task with pg-promise
我正在尝试简单地从 table 中读取一个值,并基于 return 值调用进行其他查询和 return 组合结果。
举个简单的例子:
table Users
有 id
、name
和 emailid
假设 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
.
的单个查询
我正在尝试简单地从 table 中读取一个值,并基于 return 值调用进行其他查询和 return 组合结果。
举个简单的例子:
table Users
有 id
、name
和 emailid
假设 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
.