getManager().createQueryBuilder(Table1, 't1')
.leftJoinAndSelect(Table2, 't2')
.orderBy({
't1.seq': 'ASC',
't2.seq': 'ASC',
})
.take(10)
.getMany()
<aside>
⚠️ Table1 - Table2 가 1:N 인 경우, take(10)
이 제대로 동작하지 않음.
예를 들어, t1 의 첫번째 항목이 t2 에 5개가 조인이 된 경우는,
t1 을 기준으로 10개를 가져오지 않고, t1-t2 가 조인된 상태로 10개를 가져옵니다.
+——————+
| t1.1 | t2.1
| t1.1 | t2.2
| t1.1 | t2.3
| t1.1 | t2.4
| t1.1 | t2.5
| t1.2 |
| t1.3 |
| t1.4 |
| t1.5 |
| t1.6 |
+——————+
이런 형태로 가져오게 됩니다.
</aside>
<aside>
🔑 원하는 형태로 가져오려면, orderBy()
에서 t2.seq
를 제거해야 합니다.
</aside>
getManager().createQueryBuilder(Table1, 't1')
.leftJoinAndSelect(Table2, 't2')
.orderBy({
't1.seq': 'ASC',
})
.take(10)
.getMany()
getManager().createQueryBuilder(Table1, 't1')
.leftJoinAndSelect(Table2, 't2')
.orderBy({
't1.seq': 'ASC',
})
.limit(10)
.getMany()
<aside>
⚠️ limit()
을 쓰는 경우는, t1 기준으로 10개를 가져오지 않고, t1-t2 조인된 결과 기준으로 10개를 가져옵니다.
</aside>