查询具有多个状态条件的id

Posted

技术标签:

【中文标题】查询具有多个状态条件的id【英文标题】:Querying id's that have multiple status conditions 【发布时间】:2021-10-22 20:25:45 【问题描述】:

我在 Impala 中有以下数据:

ID STATUS Date
1 a date1
1 b date2
1 c date3
2 a date4
2 c date5
3 a date6
3 b date7
3 c date8
3 x date9

我想构造一个查询,仅当 ID 具有状态(A 或 B 或 C)和状态 X 时才返回 ID。我还想返回状态 X 的日期。我不知道这样做的好方法。我需要加入两个不同状态条件的子查询吗?

【问题讨论】:

【参考方案1】:

这应该可行..

    select distinct id, date
    from t1
    where status = 'x'
    and id in 
      (select id
       from t1
       where status in ('a','b','c')
       )

这里是 db-fiddle:https://www.db-fiddle.com/f/uHVNeriETsXkLPV5kiSC1z/0

【讨论】:

谢谢,完美而简单。

以上是关于查询具有多个状态条件的id的主要内容,如果未能解决你的问题,请参考以下文章

基于多个复选框状态构建 SQL 查询

mysql 查询符合条件的 最后一条

Oracle 8i 从具有相同 ID 但不同状态的多行数据集中选择查询

MySQL在一个查询中应用多个条件[重复]

SQL 查询帮助 - 任务排序、分组和状态+日期条件问题

具有多个条件的 SQL 查询不起作用