sql에서 사용하는 쿼리가 아닌,
시퀄라이즈를 이용해 사용하는 경우,
각 테이블을 어떻게 조인할 수 있는지에 대한 부분을
오늘 다뤄보려고 한다.
🔮 2개의 테이블 조인하기
🚗 시퀄라이즈 조인은 기본 inner join 이라고 하니 참고하자.
아래의 형식으로 조인하면 된다.
const listData = await Products.findAll({
include: [{
model: 조인하려고 하는 테이블 명,
attributes: ['방금 지정한 테이블에서 가져올 컬럼명', '컬럼명을 원하는만큼 가져오기'],
where: { //조건에 맞춰서 가져올 경우 사용.
id: 3, //id가 3인 경우만 가져오겠다는 말.
}
}],
order: [['updatedAt', sort]], // 정렬 순서 지정.
})
const listData = await Products.findAll({
include: { model: UsersData },
order: [['updatedAt', sort]],
})
나의 경우 상품 작성하기, 수정하기 등등 상품과 관련한 라우터들을 관리하는 과정에서 테이블 조인이 필요했다.
그래서 Products 데이터를 먼저 찾은 뒤에, include를 통해 조인을 시도했다.
참고한 블로그
[ORM] 📚 시퀄라이즈 - 다중 조인 방법
Sequelize 여러 JOIN 시퀄라이즈 ORM의 조인 방법을 정리해본다. 왠만하면 성능을 위해서 하나이상 조인을 하는 것은 피해야 되는 것이 맞지만, 연관된 데이터가 여럿 필요한 경우 어쩔수 없이 다중
inpa.tistory.com
'TIL' 카테고리의 다른 글
23/11/17 TIL __ 시퀄라이즈 마이그레이션 수정 sequelize migration (0) | 2023.11.17 |
---|---|
23/11/16 TIL __ 3진법 뒤집기 (프로그래머스) feat. ^ xor연산자 (0) | 2023.11.16 |
23/11/14 TIL __ 미들웨어로 로그인 인증하기 (access token) (0) | 2023.11.14 |
23/11/13 TIL __ 시퀄라이저 관계 설정. (0) | 2023.11.13 |
23/11/12 TIL __ [SequelizeConnectionError]: Too many connections 에러 aws rds 에러 (0) | 2023.11.12 |