gpt4 book ai didi

MySQL - 检查不存在的记录

转载 作者:行者123 更新时间:2023-11-29 09:30:15 26 4
gpt4 key购买 nike

我目前正在尝试检查 mysql 中的现有行。

我有一个名为“历史记录”的表,在这个表中我保存了我的平台中的移动记录。

------------------------------------------------------------
| movement_id | movement | product_id |
------------------------------------------------------------
| 1 | movement_1 | 5 |
------------------------------------------------------------
| 2 | movement_2 | 5 |
------------------------------------------------------------
| 3 | movement_3 | 5 |
------------------------------------------------------------
| 4 | movement_1 | 6 |
------------------------------------------------------------
| 5 | movement_3 | 6 |
------------------------------------------------------------

我想获取所有没有 movement_2 但有 movement_3product_id。在上面的示例中,我想要返回的 ID 是 6,但这可以是多个 ID。

非常感谢任何帮助! :)

最佳答案

您可以group by product_id并使用 having 中的条件子句:

select product_id
from history
where movement in ('movement_2', 'movement_3')
group by product_id
having
sum(movement = 'movement_2') = 0
and
sum(movement = 'movement_3') > 0

仅在这种情况下(因为 movement_2 < movement_3 ),这也可以工作:

having min(movement) = 'movement_3'

请参阅demo .
结果:

> | product_id |
> | ---------: |
> | 6 |

关于MySQL - 检查不存在的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58884012/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com