gpt4 book ai didi

mysql - SQL——返回其中一个字段与组中所有记录不匹配的记录组

转载 作者:行者123 更新时间:2023-11-29 00:32:17 25 4
gpt4 key购买 nike

在下面的示例表中,具有相同 O_Id 的所有记录也应该具有相同的价格。显然,对于 O_Id 的 1 和 3,并非所有记录都具有相同的价格。

我很难编写一个查询,该查询将从一个表中返回所有记录,这些记录与一个或多个其他记录具有相同的 O_Id,但 OrderPrice具有相同 O_id 的记录之间不匹配。

示例表:

+------+------------+------------+
| Type | MySQL | OrderPrice |
+======+============+============+
| 1 | 2008/11/12 | 1000 |
| 1 | 2008/10/23 | 2000 |
| 2 | 2008/09/02 | 700 |
| 2 | 2008/09/03 | 700 |
| 3 | 2008/08/30 | 2000 |
| 3 | 2008/10/04 | 2100 |
| 3 | 2008/08/30 | 2000 |
| 3 | 2008/10/04 | 2000 |
+------+------------+------------+

示例结果集:

+------+------------+------------+
| Type | MySQL | OrderPrice |
+======+============+============+
| 1 | 2008/11/12 | 1000 |
| 1 | 2008/10/23 | 2000 |
| 3 | 2008/08/30 | 2000 |
| 3 | 2008/10/04 | 2100 |
| 3 | 2008/08/30 | 2000 |
| 3 | 2008/10/04 | 2000 |
+------+------------+------------+

最佳答案

您可以获得O_Id,其中有多个不同的价格与:

SELECT O_Id
FROM myTable
GROUP BY O_Id
HAVING COUNT(DISTINCT OrderPrice) > 1

并将其用作内部语句以获取这些 O_Id 的所有行:

SELECT *
FROM myTable
WHERE O_Id IN (
SELECT O_Id
FROM myTable
GROUP BY O_Id
HAVING COUNT(DISTINCT OrderPrice) > 1
)

关于mysql - SQL——返回其中一个字段与组中所有记录不匹配的记录组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15978201/

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