我有一张这样的表
ID Process Work
A1 | 0 | Done
A1 | 1 | Progress
A2 | 0 | Done
我需要输出A1。当Process = 0和Work ='Done'时,仅表示该工作的ID。
如何在where condition中使用多个And语句?
答案 0 :(得分:0)
您可以使用简单的查询,例如
Select * from table where (process = 0 AND work = 'Done') and (work ='Progress' and process > 0)
肯定会给你A1
答案 1 :(得分:0)
由于您的描述"将仅输出A1,因为对于Process> 0 A2且A3具有Work = Done",我认为该要求实际上如下:
"只获取process = 0和work = done的条目,其中没有其他进程> 0 with work = done(和相同的id)。"
这可以用SQL表示如下:
select t1.* from table t1 where (t1.process = 0 AND t1.work = 'Done')
and t1.id not in (select t2.id from table t2 where t2.process > 0 and t2.work = 'Done')