ORM: Sequelize: MySQL쿼리를 Sequelize.js 쿼리로 바꾸고싶습니다.
조회수 954회
쿼리는 다음과 같이 테이블 하나로 셀프조인한 문장입니다.
SELECT cat.cat_id, cat.cat_name, sub_cat.cat_id, sub_cat.cat_name
FROM Categories AS cat
LEFT JOIN Categories AS sub_cat
ON sub_cat.parent = cat.cat_id;
공식문서봐도 컬럼에 별명지정하는건 나와도 테이블에 별명 지정하는건 안나오네요 ㅠㅠ 도움이 필요합니다 ㅠㅠ
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
그러니까 하위카테고리가 자기 자신인 카테고리들을 찾아오는 거죠? 알아보니 Sequelize에는
include
옵션이라는 게 있네요. 이게 혹시 힌트가 될지 모르겠습니다.// 테스트 안해본 코드입니다. 작동 안할 수 있습니다. models.categories.find({ include: [ { model: models.categories, as: 'sub_cat' } ], where: { cat_id: sub_cat.parent } }).then(function(result) { /* 어쩌구... */ });
정 안되면 날쿼리 날리셔도 될것 같기는 하네요.
- 그리고 .find()메소드는 지금 deprecated 메시지가 뜹니다. 참고하실 분들은 .findAll()을 데이터 1개만 가져오시려면 .findOne()메소드를 사용하시길 바랍니다. 저렇게하면 ON절 밑에 WHERE절이 추가되더군요. 답변 확인하기 전에 해결해버렸습니다ㅎㅎ 도와주셔서 감사합니다. 알 수 없는 사용자 2018.12.26 19:55
댓글 입력