我试图简单地从表中读取一个值,并根据返回值调用其他查询并返回合并的结果。
我们举一个简单的例子:
表格Users
包含id
,name
和emailid
并且假设如果emailid
不为空,我们想要调用电子邮件表并返回{ id:[id], name:[name], email:[email]}
之类的结果。
答案 0 :(得分:1)
使用pg-promise支持的最新语法:
this.setState(state => {
return {
sections: state.sections.concat([obj])
};
})
请参阅API:Database.map,Database.one。
另请参阅相关问题:Get a parents + children tree with 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
});
的单个查询。