или Counition в Postgres - PullRequest
       2

или Counition в Postgres

0 голосов
/ 07 декабря 2018

Я хочу получить данные, где идентификатор события равен event_id ='NGO102' or event_id ='NGO103' or event_id ='NGO109' or event_id ='NGO111'

, вот мой запрос

select  event_id, orgname,event_date,num_of_event_pa,start_date
FROM event_details a  
INNER JOIN registration b on a.orgname =b.org_name  
where event_date >= '2017-03-31 00:00:00' AND event_date <= '2018-04-01 00:00:00' or event_id ='NGO102' or event_id ='NGO103' or event_id ='NGO109' or event_id ='NGO111'
 group by a.event_id, a.orgname,a.published_date, b.num_of_event_pa, b.start_date
     order by event_id DESC

, но он отображает все записи, которые мне нужны, у которых есть event_id event_id ='NGO102' or event_id ='NGO103' or event_id ='NGO109' or event_id ='NGO111',где я делаю ошибку, пожалуйста, направьте меня спасибо

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Почему вы используете group by?Я подозреваю, что с вашим запросом что-то не так.

Как указывает Каушик, вы хотите in.Вам также следует использовать псевдонимы таблицы значений и указать все имена столбцов:

select ed.event_id, ed.orgname, ed.event_date,
       ?.num_of_event_pa, ?.start_date
from event_details ed join  
     registration r
     on ed.orgname = r.org_name  
where ed.event_date >= '2017-03-31' and
      ed.event_date < '2018-04-01'
      ed.event_id in ('NGO102', 'NGO103', 'NGO109', 'NGO111')
order by event_id desc;

Обратите внимание, что компонент времени не требуется при употреблении.Условия JOIN также являются подозрительными.Я ожидаю, что JOIN будет на что-то вроде event_id.

0 голосов
/ 07 декабря 2018

Возможно, вам нужно условие AND для каждого из этих OR в скобках.

..
 AND event_date <= '2018-04-01 00:00:00' AND 
(  event_id = 'NGO102' OR event_id = 'NGO103' OR event_id = 'NGO109'
OR event_id = 'NGO111'
)..

Вы можете упростить его, используя IN

..  AND event_date <= '2018-04-01 00:00:00' 
    AND event_id IN ( 'NGO102','NGO103','NGO109','NGO111') ..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...