我有问题。
我想获得3个表的COUNT个,其中一个名称类似于'La',所以我创建了此查询:
SELECT COUNT(a.ID), COUNT(b.ID), COUNT(c.ID)
FROM (SELECT * FROM Artists WHERE Artistname LIKE "La*") a, (SELECT * FROM Albums WHERE Name LIKE "La*") b, (SELECT * FROM Songs WHERE Name LIKE "La*") c
这返回我3乘以0,但是当我只运行一个子查询时,我得到以下结果:
SELECT * FROM Artists WHERE Artistname LIKE "La*"
返回1 ...
我在做什么错?
将表达式放入SELECT
:
SELECT COUNT(*) as artist_cnt,
(SELECT COUNT(*) FROM Albums WHERE Name LIKE "La*") as album_cnt,
(SELECT COUNT(*) FROM Songs WHERE Name LIKE "La*") as song_cnt
FROM (SELECT COUNT(*) as artist_cnt
FROM Artists
WHERE Artistname LIKE "La*"
) as a;
嗯,除了第一个COUNT()
以外的所有。 MS Access在FROM
子句中需要某些内容,因此将它们全部移到SELECT
上比较棘手。
返回这三列:
如果在子查询中执行计数,则每个子查询将完全返回一个记录