我对 SQL 查询有点陌生,尤其是任何包含逻辑的东西,尽管我已经搜索了几个小时,但在这种情况下找到要搜索的确切术语并不容易!我有一个相对简单的,我敢肯定:
一个表有 2 列,每行包含有关程序中函数的数据。某些函数具有关联的父函数(用于分组)。A 列是唯一的函数 ID。B 列在适用时指示父函数的 ID。所有父函数 ID 都是独立且有效的函数 ID,存在于 A 列的其他位置。
出于报告目的,我需要列出按父 ID 分组的函数,列出父函数和子函数。我可以通过父函数ID轻松报告,但问题是父函数不知道它是父函数,因为它的B列是空的!
我需要做的是完成 B 列中的值,如果它为空并且该函数在其他地方作为父函数引用。
否则,对于在 B 列中具有空值的每一行:
- 从 A 列取值
- 检查 B 列的 ANY 行中是否存在该值
- 如果匹配,则将值注入 B 列(使 A 列和 B 列具有相同的值)
我有什么:(查询SELECT function_id, parent_function FROM functions
:)
FUNCTION_ID PARENT_FUNCTION
4
13 4
79
138 4
195
314 345
345
我需要具备的:
FUNCTION_ID PARENT_FUNCTION
4 4
13 4
79
138 4
195
314 345
345 345
有任何想法吗?我迫不及待地想更熟悉 SQL!提前谢谢。