mysql查询到多个实体,状态为

pdtvr36n  于 2021-08-09  发布在  Java
关注(0)|答案(3)|浏览(328)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

11个月前关门了。
改进这个问题
我们有一个表,其中order\u id基于为其设置的状态多次出现

+-------+------------+-----------------+---------------------+
| id    | order_id   | status          | created_at          |
+-------+------------+-----------------+---------------------+
| 32621 | 0000000881 | AUTHORISED      | 2018-08-06 16:17:38 |
| 32622 | 0000000881 | AUTHORISED      | 2018-08-06 16:46:29 |
| 32623 | 0000000881 | REFUSED         | 2018-08-06 17:18:33 |
| 32624 | 0000000881 | CAPTURED        | 2018-08-06 17:54:10 |
| 32625 | 0000000881 | CAPTURED        | 2018-08-06 18:33:47 |
| 32626 | 0000000882 | REFUSED         | 2018-08-06 19:17:44 |
| 32627 | 0000000882 | AUTHORISED      | 2018-08-06 20:06:25 |
| 32628 | 0000000882 | CAPTURED        | 2018-08-06 21:00:13 |
| 32629 | 0000000883 | REFUSED         | 2018-08-06 21:59:48 |
| 32630 | 0000000883 | CAPTURED        | 2018-08-06 23:05:40 |

我们目前正在查找未设置授权状态的订单id。
任何建议都可以感谢,因为我们对这些问题很少。
谢谢

sqougxex

sqougxex1#

do聚合:

SELECT order_id
FROM table t
GROUP BY order_id
HAVING SUM(status = 'AUTHORISED') = 0;
iszxjhcz

iszxjhcz2#

我会用一个 WHERE NOT EXISTS 要查找的子句 order_id 值在哪里 AUTHORISED 不存在。

SELECT DISTINCT
 order_id
FROM yourTable AS t
WHERE NOT EXISTS
 (
  SELECT 1
  FROM yourTable AS t2
  WHERE t.order_id = t2.order_id
    AND t2.status = 'AUTHORISED'
 );
js4nwp54

js4nwp543#

我会用一个子句 order_id 值在哪里 AUTHORISED 不存在。

SELECT order_id
FROM table t
GROUP BY order_id
HAVING SUM(status = 'AUTHORISED') = 0;

相关问题