如果eeid在同一日期没有其他payid,我将尝试在时间=0的情况下提取payid。
日期 | eeid | payid时间||
---|---|---|---|
2022年1月10日 | 123 | 6690 | //tr>|
2022年1月10日 | 123 | 146 | 10 |
2022年1月10日 | 456 | 6690||
2022年2月10日 | 456 | 6690||
2022年3月10日 | 456 | 6690 | |
2022年3月10日 | 456 | 146 | 10 |
您可以使用not exists
筛选出存在具有相同(eeid, date)
和非0time
的另一行的行。
select t.*
from mytable t
where t.time = 0 and not exists (
select 1
from mytable t1
where t1.eeid = t.eeid and t1.date = t.date and t1.time > 0
)
DB Fiddle 演示
从技术上讲,我们甚至不需要在where
子句中过滤time
,这就足够了:
select t.*
from mytable t
where not exists (
select 1
from mytable t1
where t1.eeid = t.eeid and t1.date = t.date and t1.time > 0
)