产品 ID 缺少属性 ID
Product id missing attribute id
我有一个 table 带有 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 |
+-----------+
Table 名字是
rp_prod_attr_list
您可以使用 group by
和 having
:
select prodid
from mytable
group by prodid
having max(attrid = 'c') = 0
在 MySQL 中,在数字上下文中评估的条件 returns 1
如果满足,否则 0
。所以max(attr_id = 'c') = 0
语句为:组中没有满足条件的行。
尝试以下操作:
select distinct prodid
from prod p
where not exists (select null
from prod p_
where p_.prodid = p.prodid
and attrID = 'c')
我有一个 table 带有 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 |
+-----------+
Table 名字是 rp_prod_attr_list
您可以使用 group by
和 having
:
select prodid
from mytable
group by prodid
having max(attrid = 'c') = 0
在 MySQL 中,在数字上下文中评估的条件 returns 1
如果满足,否则 0
。所以max(attr_id = 'c') = 0
语句为:组中没有满足条件的行。
尝试以下操作:
select distinct prodid
from prod p
where not exists (select null
from prod p_
where p_.prodid = p.prodid
and attrID = 'c')