我有多张表
post
id Name
1 post-name1
2 post-name2
user
id username
1 user1
2 user2
post_user
post_id user_id
1 1
2 1
post_comments
post_id comment_id
1 1
1 2
1 3
我正在使用这样的查询:
SELECT post.id, post.title, user.id AS uid, username
FROM `post`
LEFT JOIN post_user ON post.id = post_user.post_id
LEFT JOIN user ON user.id = post_user.user_id
ORDER BY post_date DESC
它按预期工作。但是,我也希望获得每个帖子的评论数。因此,如何修改此查询,以便获得评论数。
有任何想法吗?
SELECT post.id, post.title, user.id AS uid, username, COALESCE(x.cnt,0) AS comment_count
FROM post
LEFT JOIN post_user ON post.id = post_user.post_id
LEFT JOIN user ON user.id = post_user.user_id
LEFT OUTER JOIN (SELECT post_id, count(*) cnt FROM post_comments GROUP BY post_id) x ON post.id = x.post_id
ORDER BY post_date DESC
编辑:在没有任何评论的情况下使其成为外部联接
EDIT2:更改IsNull
为Coalesce
我想添加表示来自其他表的计数的列。 我有三张桌子。 消息 主题 STARS_GIVED 我想以: 主题回顾 所以基本上,我想附上3列唯一值的计数(每个主题中给出的星数,在主题中有消息的唯一用户,以及每个主题中唯一消息的数量)。 我希望最终能够对类别进行筛选(看看两列)。 此外,我希望最终按我加入的计数排序。例如,我将有一个按钮,按“星星的数目”按升序排序,或按“用户的数目”按降序排序,等等。 我试
问题内容: 我有两个表,一个带有列的表: 和带有列的表: 我正在尝试列出车辆的信息,其默认图像以及该车辆具有的图像总数。目前,我正在使用以下语句: 我最初使用的是: 但是根据数据库中是否有默认图像,图像计数将仅为1或0。我已经尝试使用和其他语句,但是仍然无法获得正确的结果。我是否需要使用两个语句,或者是否有其他方法可以使用或处理它? 问题答案:
问题内容: 我有两个表:gem和gemdetail保持连接状态。我试图将LEFT JOIN限制为gems表中的10条记录。也有两个其他表联接(gemreply和用户),但它们不会导致该问题。以下内容不起作用: 这将返回的行总数限制为10,但是由于每个gem有多个明细记录,所以我剩下不到10个gem记录。我已经阅读了每个“ LIMIT”帖子,但没有发现这种情况。 更新1:好的-感谢jviladric
问题内容: 我用多个(包括一个)编写了这个SQL请求。 它给了我预期的结果 。 但是,“ Id就像此请求的Linq等效项一样,将其放在应用程序的数据访问层中。 我尝试了类似的东西: 我试图适应这个问题,但我无法弄清楚。我对分组子请求的内部迷失了。 谁能解释我哪里错了? 专家提示:如果有人可以用lambda表达式编写等效项,则可获赠积分 问题答案: 要将SQL转换为LINQ查询理解: 将子选择转换为
问题内容: K,所以我有两个表: 我想从类别中获取所有信息,并计算每个类别中的问题数(question_id)。 假设,第一个类别(计费)将有一个问题,第二个类别(安全)将有3个问题。 我已经试过了: 问题答案: 您想这样做: 在将确保没有问题类别获得与数= 0上市
问题内容: 这是我的namedquery: @NamedQuery(name =“ User.findOneWithLists”,查询=“从用户u中选择u” +“左联接FEACH u.aTemplates” +“左联接FE.bTemplates” +“左联接FE.bp” +“左JOIN FETCH u.aCredentials“ +” LEFT JOIN FETCH u.st(st.deleted