작성
·
240
0
씨퀄라이저 에서 데이터를 같이 가져 올떄는
join문을 사용 하라고 도움을 주셔서 join문을 공부 하고 있습니다.
제가 지금 짠 query는
SELECT Post.id, Post.content, Post.createdAt, Post.updatedAt, Post.UserId, Post.RetweetId, `User`.`id` AS `User.id`, `User`.`nickname`, `Likers->Like`.`UserId` FROM Posts AS Post LEFT OUTER JOIN Users AS USER ON Post.UserId = User.id
LEFT OUTER JOIN ( `Like` AS `Likers->Like` INNER JOIN `Users` AS `Likers` ON `Likers`.`id` = `Likers->Like`.`UserId`) ON `Post`.`id` = `Likers->Like`.`PostId` ORDER BY `Post`.`createdAt` DESC LIMIT 10
이런 형태로 결과는
이런식으로 다 붙어서 나오고 있습니다.
그런데 서큘에서 한 결과 물을 봤을때
해당 글의 id별로 likers로 구분지어서 나오더라구여
어떻게 하면 이런식으로 구분 지어 질수 있는 지 알수 있을까요?!
group by를 사용 해야 하나요?
답변 4
0
힌트 좀 주실수 있을까요? 저는 어떻게 생각을 했냐면 다중 쿼리를 사용 하여
result에 들어 가 있는 값을
db.getMap((result) => {
for ( var i = 0; i < result.length; i++ ) {
aa = [{
"name":result[i].name,
"user":{"result":result[i]._id}
}]
}
res.json(aa);
});
이 포멧으로 json 형식으로 만들어 보려고 했는데
혹시 반복문 으로 한 번 돌려서 하는 방식은 생각을 안해봐서
foreach로 돌려 그냥 앞에 각각의 as로 설정 해주는 user, like 같은 걸 찾아서
push해주실 생각 이신가요??
그리고
중복 되는 부분은 필터 를 사용해서 해야 할까요?!
힌트좀 부탁 드리겠습니다.
0
0
0