sql - 如何为表中的每条记录创建一个 SELECT 查询?
问题描述
我有一张表,SingleCrossReference
其中包含日语单词列表。我想查询这个表,并且对于每条记录,计算该单词字符串在单独的表中出现的次数,Keyword
. 所以基本上我想要创建的查询表看起来像:
| SingleCrossReference.Word | Count(Keyword.Keyword) |
| Word 1 | 1 |
| Word 2 | 2 |
| Word 3 | 1 |
此外,用于计算单词的机制需要区分大小写,否则 Access 会将两个日语书写系统视为相同并将它们一起计数。
我有一个查询可以评估Keyword
表中的单个记录:
SELECT COUNT(Keyword.Keyword)
FROM Keyword
WHERE StrComp(Keyword.Keyword, "[Japanese word]", 0)=0
但我不知道如何链接这两个表,以便计算表中单词SenseCrossReference
出现在Keyword
表中的次数。
解决方案
子查询本质上是这样做的:
SELECT Word,
(
SELECT COUNT(Keyword)
FROM Keyword
WHERE StrComp(Keyword.Keyword, Word, 0)=0
) As CountKeyword
FROM SingleCrossReference
但是,性能通常不是最理想的,并且您通常最好将其重写为连接,例如:
SELECT Word, Count(Keyword)
FROM SingleCrossReference, Keyword
WHERE StrComp(Keyword.Keyword, Word, 0) = 0
GROUP BY Word
这假设在 Word 上分组时没有区域设置问题,否则您需要为每个单词添加唯一标识符。
推荐阅读
- javascript - 在 discord.js 中获取频道名称
- php - Google 日历 API 更新不会为已删除的事件返回错误
- jquery - 如何在电子中定义一个端点来监听一个发布请求?
- javascript - 连接丢失 - 套接字挂断
- visual-studio - 如何在 Visual Studio 中设置调试工作目录的默认路径
- matlab - 循环中的 if 语句
- next.js - Tailwind 的 JIT 模式在 Next JS 的本地主机预览中不起作用
- javascript - 将 Skype for Business 与我的 Web 应用程序集成
- bash - 如何将 let 命令输出分配给变量?
- ruby-on-rails - 迭代期间的 Ruby/Rails 6 求和