我看到了一些相关的帖子,试图修改示例以使其适合我的情况,但没有做到。
我有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 - MySQL:在另一个内部选择中访问内部选择表别名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50468818/