2017-02-22 15 views
1

Я ищу, чтобы комбинировать два разных оператора where и получать вывод, когда происходят обе ситуации.SQL multiple объединяется с операторами

SELECT j.project_id Matter_Primary_Key, 

    j.type_id, 
    l.name Role, 
    l.Tree_position, 
    j.user_id User_Primary_Key, 
    y.username, 
    tcont.name || ',' || tcont.first_name Assignee_Name, 
    j.assigned_on, 
    j.unassigned_on, 
    tproj.number_string Matter_Number, 
    tproj.name Plan_Name 
FROM j_proj_assignee j, 

    y_user y, 
    l_proj_assignee_type l, 
    t_project tproj, 
    t_contact tcont 
WHERE  j.unassigned_on IS NULL 

    AND (j.type_id = '93' AND y.username = 'XXX') 
    AND (j.type_id = '3010' AND y.username = 'YYY') 
    AND j.type_id = l.primary_key 
    AND j.user_id = y.primary_key 
    AND j.project_id = tproj.primary_key 
    AND y.contact_id = tcont.primary_key 

Но у меня возникают проблемы с моим запросом внутри(), так как они вытягивать из двух разных таблиц, но я хочу только записи, где применяются обе эти ситуации. Нужен ли мне запрос на объединение?

+1

Вы, вероятно, хотите или между двумя условиями заключенных в квадратные скобки – GurV

+0

Кроме того, * мне нужно сделать Регистрация * - вы уже присоединяются к таблицам с использованием более старого синтаксиса. Всегда используйте явный синтаксис соединения. – GurV

+0

Я удалил несовместимые теги базы данных. Пожалуйста, пометьте базу данных, которую вы действительно используете. –

ответ

1

Эти две строки читаются так, как будто вам требуются все условия, указанные в то же время. Например, type_id не может быть 93, а также 3010 одновременно.

AND (j.type_id = '93' AND y.username = 'XXX') 
    AND (j.type_id = '3010' AND y.username = 'YYY') 

Вместо этого, попробовать что-то вроде этого, чтобы увидеть, если он работает:

AND ((j.type_id = '93' AND y.username = 'XXX') OR (j.type_id = '3010' AND y.username = 'YYY')) 
+0

Спасибо за подсказку, но мне нужно, чтобы оба результата были объединены вместе, а не – confusedbeginner

+0

Возможно, я не понимаю, как вы собираетесь присоединиться. То, как это указано в настоящее время, у вас будет только один j.type_id для каждой строки, поэтому я ожидаю, что ваш запрос ничего не вернет. Как может быть более одного j.type_id? – dimab0

+0

не использовал бы ИЛИ, как @ dimab0, объединил результаты вместе? – Shruti