如何使用另一个表中的其他字段查询DB表

时间:2018-01-26 19:52:17

标签: mysql sql

我正在开发一个HN风格的数据库,我正在尝试查询一个“帖子”列表,其中包含每个人的'userHasVoted'属性(这会检查用户当前是否已登录投票支持该特定职位)。 (注意:userHasVoted字段不存在 - 但如果用户已投票选择特定帖子,则需要动态创建。)

“帖子”作为“投票”位于单独的表格中,加入post.idvotes.postId

如何查询数据库以显示带有此属性的每个帖子,而不仅限于用户投票的帖子?

1 个答案:

答案 0 :(得分:2)

我并不完全清楚你在问什么,但我认为最可能的情况是你使用INNER JOIN(也许只表示为JOIN),这只会返回记录中的结果从两个表实际存在。你想要的是外部联接,如果第二个表中没有记录匹配,它将允许你保留第一个表中的记录:

SELECT p.*, case when v.postid is not null then 1 else 0 end as UserHasVoted
FROM posts p
LEFT JOIN votes v ON v.postid = p.id and v.userid = @UserID