主页>技术社区>编程问答

查找存在多个不同值的SQL表行

eIT.com.cn 2023/3/17 11:23:36 阅读 3 次

打印


如何解决查找存在多个不同值的SQL表行?

我希望能够过滤出值不相同的组。时:

SELECT    category.id  as category_id,object.id    as object_id,object.value as value
FROM   category,object
WHERE   category.id = object.category

我们得到以下结果:

 category_id | object_id | value
-------------+-----------+-------      1     |     1     |     1      1     |     2     |     2      1     |     3     |     2      2     |     4     |     3      2     |     5     |     2      3     |     6     |     1      3     |     7     |     1

目标:更新,使其产生:

 category_id 
-------------      1           2     

换句话说,找到与相同类别中的其他值不同的类别。

我尝试了许多不同的加入,分组等,但无济于事。

我知道可以通过多个来完成,然后进行一些逻辑过滤,但这不是目标。

解决方法

您可以使用聚合:

SELECT o.category as category_id
FROM object o
GROUP BY o.category
HAVING MIN(o.value) <> MAX(o.value);

您已将FROM子句排除在查询之外。但是按照书面规定,您根本不需要JOINobject表就足够了–因为您只获取类别ID。






相关内容


热门栏目


特别声明


最新资讯
热讯排行



合作媒体友情链接
生活常识小贴士 软件开发教程 智慧城市生活网 息县通生活服务[移动版] 息县商圈[移动版] 美食菜谱
健康养生 法律知识 科技频道 电影影讯 留学考研学习 星座生肖|解梦说梦




关于我们 | 联系我们 | 合作媒体 | 使用条款 | 隐私权声明 | 版权声明

      Copyright © 2023 eIT.com.cn. All Rights Reserved. 豫ICP备2022012332号