我看到一些相关帖子尝试修改示例以适合我的情况,但无法做到。
我有 3 个表:A
、B
和 C
,其中包含数百万条记录。
我希望能够:
过滤
A
表的部分记录。然后,在过滤后的表上,根据两个表中的共享列将其与
B
表连接起来,再次对其进行过滤。然后,在过滤后的表上,根据两个表中的共享列将其与
C
表连接,从而进一步过滤它计算
c
表上的记录数量。
我尝试的是:
select count(*) from
(select A.exmp_column from A where A.insert_date BETWEEN '2018-03-28 00:10:38' and '2018-03-29 00:10:38') as a,
(select * from B where a.shared_column = B.shared_column) as b,
(select * from C where b.shared_column = C.shared_column) as c;
但似乎我无法在内部选择中使用别名 a
和 b
..我怎样才能实现我需要的?
抱歉,如果我的术语不正确,我是 SQL
新手。
谢谢
最佳答案
这是你想要的吗?
select count(*)
from A
inner join B on A.shared_column = B.shared_column
inner join C on B.shared_column = C.shared_column
where A.insert_date BETWEEN '2018-03-28 00:10:38' and '2018-03-29 00:10:38'
关于MySQL:在另一个内部选择中访问内部选择表别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50468818/