inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

typeorm 쿼리빌더

질문있습니당

해결된 질문

171

Jack

작성한 질문수 11

1

안녕하세요 강사님

1. 강의 10분 56초 즈음에 강사님께서 

 async getWorkspaceMembers(urlstring) {

   this.usersRepository
      .createQueryBuilder('user')
      .innerJoin('user.WorkspaceMembers''members')
      .innerJoin('members.Workspace''workspace''workspace.url = :url', {
        url,
      })

      .getMany();

   
 }

이렇게 해 놓으면 가입되어 있는 워크스페이스들 전부 가져올 수 있다고 하셨는데 실제로 값을 어떻게 가져오려고 확인해봤습니다


  async getWorkspaceMembers(urlstring) {

    const hello = await this.usersRepository
      .createQueryBuilder('user')
      .innerJoin('user.WorkspaceMembers''members')
      .innerJoin('members.Workspace''workspace''workspace.url = :url', {
        url,
      })

      .getMany();

  
    Logger.log('hello:'JSON.stringify(hello));
  
 }

그런데 출력값이 이렇게 나오더라구요

즉 user정보를 가지고 오더라구요

제 디비에는 이렇게 데이터가 들어가있구요

User

Workspace

Workspacemembers

그래서 궁금한게 왜 workspace모든 정보가 아닌 User정보만 가지고 오는지 궁금합니다!

2. 제가 이해한 순서가 맞는지 헷갈리는데요. 

async getWorkspaceMembers(urlstring) {
    return this.usersRepository
      .createQueryBuilder('user')
      .innerJoin('user.WorkspaceMembers''members')
      .innerJoin('members.Workspace''workspace''workspace.url = :url', {
        url,
      })
      .getMany();
 }

이 코드에서 순서가

첫째

 .innerJoin('members.Workspace''workspace''workspace.url = :url', {
        url,
     })

url로 workspace테이블의 url에 일치하는 workspace로우를 찾은다음 worspaceId로 인해 이것과 관계되어있는

workspacemembers로우를  찾습니다. 

둘째

.innerJoin('user.WorkspaceMembers''members')

workspacemembers의 관계되어있는 uerId를 통해서 유저 정보를 전부 불러옵니다.

즉 순서가 밑에서 위로 찾는게 맞는 순서인지 궁금합니다!

3.  위의 코드를 바탕으로 sql 에서는 inner join을 할때 관계되고 일치되는 테이블의 값들을 전체 불러왔는데 왜 typeorm에서는 마지막 user정보만 불러오는지 궁금합니다 

4. 

 .innerJoin('user.WorkspaceMembers''members')

이 코드에서

별명이 members잖아요? 그럼 user.WorkspaceMembers전체를 가리키는 것인가요 아니면 WorkspaceMembers만 가리키는 것인가요?ㅎㅎ

express nodejs TypeORM NestJS

답변 1

0

제로초(조현영)

1,3. innerJoin 대신 innerJoinAndSelect 하셔야 데이터까지 같이 가져와집니다.

2. 위에서 아래로 찾습니다.

4. 둘이 같은 말 아닌가요? 해당 유저의 워크스페이스멤버 정보입니다.

강의자료는 어디서 다운받나요?

0

141

4

질문 있습니다.

0

315

3

코드 편집기 확장 프로그램

0

220

2

(질문)비밀 저장소에 접근하기 위한 인증 정보는 로컬 .env에 저장하는지?

0

161

2

(질문)외부 저장소를 통한 환경변수 불러오기 비동기 질문

0

177

3

로그인을 해도 LoggedInGuard쪽에서 false값이 나옵니다.

0

161

2

로그인방법이 고민됩니다.

0

197

2

yarn seed 명령어 실행 시 데이터 삽입 안됨

0

305

4

yarn run db:create 시에 발생하는 데코레이터 오류

0

248

2

npm run db:create 시에 발생하는 decorating 오류

0

245

2

RxJS 디버깅 질문 있습니다.

0

198

3

CacheManager에 대해 질문 있습니다.

0

184

2

로깅은 어떻게 하는게 효율적일까요?

0

237

1

CORS 질문 있습니다.

0

425

2

쿠키 옵션에 대해서 질문 있습니다.

0

188

2

로그아웃 요청이 403 forbidden 에러가 나는데 왜그런걸까요??

0

458

1

401 unauthorized문제

0

304

1

가드의 장점에 대해서 질문이 있습니다.

0

232

1

로그 관리에 대해 질문 있습니다.

0

254

2

CORS 에러 질문 있습니다.

0

328

2

배포 환경 DB 연결 질문 있습니다.

0

417

2

socket io 미 연결 문제 (nest & flutter)

1

1166

3

no elements in sequence 에러 관해서 질문이 있습니다.

0

462

1

start:dev-backup으로 돌리면 핫 리로딩이 되요 정상인가요?

0

324

1