MS Access在查询中使用多个子查询

问题描述 投票:0回答:3

我有问题。

我想获得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 ...

我在做什么错?

sql ms-access access
3个回答
0
投票

将表达式放入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上比较棘手。


0
投票

返回这三列:


0
投票

如果在子查询中执行计数,则每个子查询将完全返回一个记录

© www.soinside.com 2019 - 2024. All rights reserved.