SQL 将一个查询的结果用于另一个查询

新手上路,请多包涵

这是一张表的摘录:

 | id | type    | other_id | def_id | ref_def_id|
| 1  | int     | NULL     |  5     | NULL     |
| 2  | string  | NULL     |  5     | NULL     |
| 3  | int     | NULL     |  5     | NULL     |
| 20 | ref     | 3        |  NULL  | 5        |
| 21 | ref     | 4        |  NULL  | 5        |
| 22 | ref     | 5        |  NULL  | 5        |

我想要的是找到类型为 ref 的条目。然后我会在我的结果中有一个条目:

 | 22 | ref     | 5        |  NULL  | 5        |

我面临的问题是我现在想将此条目与 def_id = 5 的同一张表的其他条目结合起来。

因此,对于这个特定的 ref 类型,我会得到所有带有 def_id = 5 的条目作为结果。我不知何故需要第一个查询的输出,检查 ref_def_id 是什么,然后对该 id 进行另一个查询。

我真的很难理解如何进行。非常感谢任何输入。

原文由 curlie 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 849
1 个回答

使用下面的查询从子查询中获取列。

 select a.ref_def_id
from (select ref_def_id from YourTable where type='ref') as a;

原文由 Ruchi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题