我正在尝试在2018年6月之前和12月1日之后抢购产品。我想一个简单的方法是通过两个子查询,然后在外部查询中将它们彼此相邻地调用。运行此命令时,我会为其中一个子查询获取正确的数据,而另一个子查询只是针对另一个查询的每个不同结果重复相同的id
和created_at
。
with x as (select id, created_at
from products p
where created_at < '2018-06-01'
and approved = 't'),
y as (select id, created_at
from products p
where created_at > '2018-12-01'
and approved = 't')
select * from x,y
limit 100;
Results look like :
id | created_at | id2 | created_at2
1 2012-12-05 5 2018-12-20
2 2012-12-06 5 2018-12-20
3 1993-05-23 5 2018-12-20
4 2005-03-10 5 2018-12-20
...
Expected results:
id | created_at | id2 | created_at2
1 2012-12-05 5 2018-12-22
2 2012-12-06 6 2018-12-31
3 1993-05-23 7 2018-12-27
4 2005-03-10 8 2018-12-06
答案 0 :(得分:0)
也许我对要求不清楚,但是如果您想“抢购”在2018年6月之前或12月1日之后创建的产品,则可以在一个带有OR条件的查询中进行操作:
select id, created_at
from products p
where (created_at < '2018-06-01' OR created_at > '2018-12-01')
and approved = 't'