SQL多个组合where语句

时间:2017-02-22 01:44:03

标签: sql join where-clause

我希望结合两个不同的where语句,并在两种情况发生时获得输出。

 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 个答案:

答案 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'))