【问题标题】:Product id missing attribute id产品 ID 缺少属性 ID
【发布时间】:2021-01-17 15:27:43
【问题描述】:

我有一个带有 prodID 和 attrID 的表 每个 prodID 有 1-5 个 atrrID 我想列出没有特定 atrrID 的 prodID,例如“c”

+-----------+---------+
| prodID    | attrID  | 
+-----------+---------+
| 1         | a       | 
| 1         | b       |
| 1         | c       | 
| 2         | a       | 
| 2         | b       | 
| 2         | d       |
| 3         | b       | 
| 3         | c       | 
| 3         | d       |
| 4         | a       | 
| 4         | b       | 
| 4         | d       | 
| 4         | e       | 
| 5         | a       | 
| 5         | b       | 
| 6         | a       | 
| 6         | d       |   
+-----------+---------+

结果应该是

+-----------+
| prodID    |
+-----------+
| 2         |
| 4         | 
| 5         |
| 6         |
+-----------+

表名是 rp_prod_attr_list

【问题讨论】:

  • 您还需要显示查询。我们无法修复我们看不到的东西。这是WHERE attrID NOT IN (...)的案例吗?
  • 嗨!我没有任何查询,我正在寻求查询建议!

标签: mysql sql group-by subquery having-clause


【解决方案1】:

您可以使用group byhaving

select prodid
from mytable 
group by prodid
having max(attrid = 'c') = 0

在 MySQL 中,在数字上下文中评估的条件如果已满则返回 1,否则返回 0。所以max(attr_id = 'c') = 0 短语为:组中没有满足条件的行。

【讨论】:

    【解决方案2】:

    尝试以下方法:

    select distinct prodid
    from prod p
    where not exists (select null
                      from prod p_
                      where p_.prodid = p.prodid
                       and attrID = 'c')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      • 2011-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多