2016-06-29 2 views
1

테이블에서 값을 읽고 추가 값 호출에 대한 리턴 값 호출을 기반으로 합계 결과를 리턴하려고합니다. 테이블 Usersid, nameemailidemailid 우리가 이메일 테이블을 호출하고 { id:[id], name:[name], email:[email]} 같은 결과를 반환 할 null가 아닌 경우의 말을하자 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.map, Database.onepg-promise에 의해 지원되는 최신 구문을 사용

답변

1

.

관련 질문 : Get a parents + children tree with pg-promise도 참조하십시오.


참고 : 더 좋은 방법은 INNER JOIN와 함께 단일 쿼리를 사용합니다.

+1

나는 또한 위의 경우 왼쪽 가입을 시도하지만 내 실제 코드가 더 복잡하다는 데 동의합니다. 감사! – Parham

+0

@Parham 나는 하나의 어리석은 실수를 저질렀다는 것을 깨달았습니다. 단지': null'을': user'로 대체하여 바로 잡았습니다. 그렇지 않은 경우 이메일이없는 각 사용자를 'null'로 바 꾸었습니다. –

+1

정정을 제안하기 위해 돌아 왔던 것처럼이 주석을 보았습니다! 당신은 멋진 사람입니다. 감사 ! – Parham