首页 > 解决方案 > 如何获取属于该组的某些项目满足条件的组的所有项目?

问题描述

我开始使用 SQL 和 PostgreSQL,我有这个问题:

如何从只有一些项目满足条件的组中获取所有项目?

例如:

+________________________+
|id| group_id |    name  |
+------------------------+
| 1|     1    |   FOOD   |
--------------------------
| 2|     1    |   SNACK  |
--------------------------
| 3|     2    |   SODA   |
--------------------------
| 4|     1    |CHOCOLATE |
--------------------------

SELECT id FROM table WHERE any in group_id name LIKE 'FOOD%'

我想检索 1,2,4,因为它们属于 group_id,其中一项是 LIKE 'FOOD%'。

我无法通过 group_id 检索它们,因为我有不同的数据库,其中 group_id 发生了变化,有时我感兴趣的 group_id 是 1,2 ...所有数据库中唯一相同的是我对group_id 其中名称 LIKE 'FOOD%'。

标签: sqlpostgresql

解决方案


您可以通过以下方式获得group_id结果中所需的所有 s:

SELECT group_id FROM tablename WHERE name LIKE 'FOOD%'

使用运算符在查询中使用它IN

SELECT * 
FROM tablename
WHERE group_id IN (SELECT group_id FROM tablename WHERE name LIKE 'FOOD%')

推荐阅读