SQL多个合并where语句

SQL多个合并where语句,sql,join,where-clause,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.un

我希望结合两个不同的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

但是()中的查询有问题,因为它们来自两个不同的表,但我只需要这两种情况都适用的记录。我需要join语句吗?

这两行读起来就像您同时需要指定的所有术语一样。例如,类型_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'))

您可能需要在两个括号内的条件之间使用OR。那么,我是否需要进行联接?您已经在使用较旧的语法联接表了。始终使用显式连接语法。我删除了不兼容的数据库标记。请标记你真正使用的数据库。谢谢你的提示,但我需要能够将两个结果组合在一起,而不是任何一个,因为我不明白你打算如何加入。按照当前的指定方式,每行只有一个j.type_id,因此我希望您的查询不会返回任何结果。怎么可能有一个以上的j.type_id?使用或像上面提到的@dimab0那样将结果组合在一起不是吗?