我有一个表格SingleCrossReference
,其中包含日语单词列表。我想查询该表,并为每条记录计算该单词字符串在单独的表Keyword
中出现的次数。因此,基本上我要创建的查询表如下所示:
| SingleCrossReference.Word | Count(Keyword.Keyword) |
| Word 1 | 1 |
| Word 2 | 2 |
| Word 3 | 1 |
另外,用于计数单词的机制必须区分大小写,否则Access将考虑两个日语书写系统as the same and count them together。
我有一个查询,可以评估Keyword
表中的一条记录:
SELECT COUNT(Keyword.Keyword)
FROM Keyword
WHERE StrComp(Keyword.Keyword, "[Japanese word]", 0)=0
但是我不知道如何链接两个表,以使它无法统计SenseCrossReference
表中一个单词出现在Keyword
表中的次数。
答案 0 :(得分:2)
子查询本质上是这样做的:
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上进行分组时没有语言环境问题,否则您需要为每个单词添加唯一的标识符。