- 64
- 0
comment表有一个主键id,记录评论
likes表记录点赞,也有一个主键id,和一个commentId键,一篇comment可能会有好多likes
现在用sequelize查表(需要查询comment列表,以及每个comment的likes列表)并处理,返回合适的数据结构给前端。
要怎么做?
关联:commentTable.hasMany(likeTable, {foreignKey: 'commentId', targetKey: 'id'});
查询:
comment: (params) => commentTable.findAll({
...params, include: [{
model: likeTable,
where:{commentId:sequelize.col('comments.id')}
}]
}),
sql:
Executing (default): SELECT `comments`.`id`, `comments`.`title`, `comments`.`comment`, `comments`.`replyUserId`, `comments`.`replyId`, `comments`.`articleId`, `comments`.`userId`, `comments`.`userNickname`, `comments`.`userAvatar`, `comments`.`isRead`, `comments`.`createdTime`, `comments`.`flag`, `likes`.`id` AS `likes.id`, `likes`.`userId` AS `likes.userId`, `likes`.`username` AS `likes.username`, `likes`.`commentId` AS `likes.commentId`, `likes`.`status` AS `likes.status` FROM `comment` AS `comments` INNER JOIN `likes` AS `likes` ON `comments`.`id` = `likes`.`commentId` AND `comments`.`id` WHERE `comments`.`replyUserId` = '0' AND `comments`.`isRead` = '0' AND `comments`.`flag` = 0;
还是查不到结果
原来sql语句用了inner join
导致了没有数据
把它改为left join就可以了
comment: (params) => commentTable.findAll({
...params,
include: [{
model: likeTable,
where:{commentId:sequelize.col('comments.id')},
required:false //left join
}]
}), 0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 10 元积分
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

