PDD*_*PDD 6 sql database sql-server left-join
假设有两个表:
表A.
messageID / Message / More..
1 / This is the first message / Etc..
2 / This is the second message / Etc..
3 / This is the third message / Etc..
Run Code Online (Sandbox Code Playgroud)
表B
commentID / messageID / Comment
1 / 2 / This is a comment to the second message
2 / 2 / This is another comment to the second message
3 / 3 / This is a comment to the third message
Run Code Online (Sandbox Code Playgroud)
表之间的关系是messageID字段.
我想要一个生成这样的结果的查询,其中我从表A中提取所有字段,以及表B中每条消息的注释数计数,如下所示:
messageID / Message / More... / CommentCount
1 / This is the first message / etc... / 0
2 / This is the second message / etc... / 2
3 / This is the third message / etc... / 1
Run Code Online (Sandbox Code Playgroud)
我尝试过这样的事情:
SELECT tableA.*, count(commentID) as commentcount
FROM tableA LEFT JOIN tableB ON tableA.messageID = tableB.messageID GROUP BY messageID
Run Code Online (Sandbox Code Playgroud)
但它不起作用.有任何想法吗?似乎应该可以在一个查询中执行此操作.我正在使用MSSQL.谢谢你的帮助.
Cad*_*oux 13
标量子查询将起作用:
SELECT tableA.*
,(SELECT count(commentID) FROM tableB WHERE tableA.messageID = tableB.messageID) as commentcount
FROM tableA
Run Code Online (Sandbox Code Playgroud)
像往常一样,通过不同的性能配置文件,可以通过很多方法来修饰这只猫.
使用a时GROUP BY,输出中的所有列都需要处于GROUP BY或聚合函数中 - 即使messageID中的其他列没有变化,它们仍然需要位于GROUP BY.
| 归档时间: |
|
| 查看次数: |
12565 次 |
| 最近记录: |