Два подзапроса возвращают правильные данные, но повторяют - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь взять продукты до июня 2018 года и после 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

1 Ответ

0 голосов
/ 08 января 2019

возможно, я не совсем понимаю требования, но если вы хотите "получить" продукты, созданные до июня 2018 года или после 1 декабря, вы можете сделать это в одном запросе с условием ИЛИ:

select id, created_at
    from products p
    where (created_at < '2018-06-01' OR created_at > '2018-12-01')
    and approved = 't'
...