SQL看起来像这样:
select *
from A
where A.id in (select id
from B
where b.date>'2015-01-01')
group by a.id;
b.data>'2015-01-01'
是一种动态条件。
答案 0 :(得分:0)
您无法在视图中使用子查询,但您可以加入表格以获得所需内容:
create view my_view as
select A.*
from A
inner join B on A.id = B.id
where B.date > '2015-01-01'
group by A.id;
答案 1 :(得分:0)
我认为您只能使用此解决方法:
创建一个代表动态值的函数:
create function param() returns date deterministic no sql return @param;
创建视图:
create or replace view myView as (
select *
from A
where A.id in (select id
from B
where b.date>param())
group by a.id);
选择值
select v.*
from (select @param:=str_to_date('01-1-2015','%d-%m-%Y') p) param , myView v;
p.s。 :我修正了一个小错字;删除了一个分号。 Here你有一个例子。