작성
·
225
0
const posts = await Post.findAll({
include: {
model: User,
attributes: ['id', 'nick'],
},
order: [['createdAt', 'DESC']],
});
1. 저거를 sql문으로 표현하면
select *
from posts
left join users
on posts.id = users.id
order by posts.createdAt desc;
맞나요?
2. 시퀄라이즈문법 include안에 attributes를 선언한 이유가, sql은 외래키 연결되어있으면 그냥 join만 하면 알아서 키가 연결되서 조인되는데,
시퀄라이즈는 직접 외래키연결된 키를 명시해야되서 쓰는건가요?
3. 2번 질문이 정답이라면 nick은 왜 쓴건가요?
로그를 보니 그냥 전체 필드들을 다 가져오던데..
답변 1
0
1 두 부분 다릅니다.
select users.id, users.nick, posts.컬럼...
on posts.userId = users.id
2. attributes는 외래키가 아니라 select 부분입니다. include 안의 attributes는 조인테이블에서 가져올 컬럼입니다.