sql - 如何获取属于该组的某些项目满足条件的组的所有项目?
问题描述
我开始使用 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%'。
解决方案
您可以通过以下方式获得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%')
推荐阅读
- asp.net-mvc - 在 Azure 反向代理后面的 ASP.NET (4.7) MVC 中设置 HTTP_HOST 服务器变量
- javascript - 正则表达式过滤数组javascript
- flutter - Flutter中获取父widget的borderRadius
- powershell - 如何使用 Powershell 命令在 Windows 中定位指定的文件类型
- javascript - 如何从另一个文件导入变量
- javascript - 如何在 Safari 上获得流畅的滚动功能
- loops - 尝试在 for 循环中运行模型
- ansible - 循环时 dict 的 Ansible 列表
- database - 将日期时间对象转换为日期时间对象后,将其作为字符串保存在数据库中
- html - 我在 github 上有这些 .html 文件,我不想用 sublime text 3 打开它们。我该怎么做?我可以请逐步说明