gpt4 book ai didi

mysql - 在mysql中一起查询where,having和order by

转载 作者:行者123 更新时间:2023-11-29 05:27:35 25 4
gpt4 key购买 nike

我有下表...

        ID      awaiting    approve decline      
100 1 0 0
100 1 0 0
102 1 0 0
103 0 1 0
104 0 1 0
104 1 0 0
106 1 0 0
107 0 1 0
107 1 0 0
107 1 0 0

我还有以下代码,...

  SELECT COUNT(*) total
FROM
(
SELECT ID
FROM table1
GROUP BY ID
HAVING COUNT(*) = 2
AND MAX(awaiting = 1) > 0
) q

上面的代码所做的是计算所有只重复两次的 ID 和至少一个 ID awaititng=1,

但现在我想要的是,如果等待为 1(如 ID 100),我想显示上面的结果以及列出的重复 ID。

从上面的查询中,结果是两 (2) 个 ID 的 100 和 104,因为我们按 ID 分组。

现在,即使 ID 相同(在这种情况下,我们必须有三个行列表),我如何才能显示此 ID 的所有结果(其中 awaiting=1)?

请帮忙....

最佳答案

这应该有效:

SELECT *
FROM table1
WHERE ID IN (SELECT ID
FROM table1
GROUP BY ID
HAVING COUNT(*) = 2
AND MAX(awaiting) = 1)
AND awaiting = 1

结果是:

╔═════╦══════════╦═════════╦═════════╗
║ ID ║ AWAITING ║ APPROVE ║ DECLINE ║
╠═════╬══════════╬═════════╬═════════╣
║ 100 ║ 1 ║ 0 ║ 0 ║
║ 100 ║ 1 ║ 0 ║ 0 ║
║ 104 ║ 1 ║ 0 ║ 0 ║
╚═════╩══════════╩═════════╩═════════╝

安德here is带有演示的 sqlfiddle。

关于mysql - 在mysql中一起查询where,having和order by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18321609/

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