如何从sql server上具有父子关系的表中检索唯一数据

fra*_*ron 0 sql sql-server

我有一个父子关系的表,父亲和儿子都是主键,让我给你看一个数据的例子:

Father | Son
----------------
A      |   1
A      |   2
B      |   1
C      |   1
D      |   2
E      |   3
Run Code Online (Sandbox Code Playgroud)

所以我想要的是一个儿子,得到一个父亲,无所谓哪个,我知道这听起来很奇怪,但我只需要知道其中一个父亲作为参考,所以我正在寻找一个结果是这样的:

Son    | Father
----------------
1      |   A
2      |   A
3      |   E
Run Code Online (Sandbox Code Playgroud)

我尝试做这样的事情,在我的查询[代码]是儿子

select i.father, q1.code from
(select i1.code from itt1 i1 where isnumeric(substring(i1.father, 0, 3)) =1 group by i1.code) q1
left join itt1 i on q1.code = i.code where i.code is null
Run Code Online (Sandbox Code Playgroud)
  1. 我检索并分组所有儿子并将结果封装在q1子查询中
  2. 然后我离开了加入桌子的q1,但我没有得到我想要的结果

有可能做我想要的吗?

mik*_*key 5

您可以将聚合函数与group by一起使用.例如:

select son, min(father) AS Father from itt1 group by son
Run Code Online (Sandbox Code Playgroud)