我正在开发一个应用程序,我想从多个通过外键连接的表中获取记录。我正在使用的查询是
**int
查询结果为
您可以看到数据在其中重复。我只想要一次记录。我不想重复。我想要这样的东西
*i = &newvalue
我想要的结果:
*int
通过您的查询获取的结果
总行数为5
更多信息
我希望两个表中的 select ue.institute, ue.marks, uf.relation, uf.name
from user_education ue, user_family uf where ue.user_id=12 and uf.user_id=12
行相同但你可以看到T1中有3行,而T2中有2行。我不想重复,但我想在T1 T2
id|name|fid id|descrip| fid
1 |A |1 1|DA | 1
2 |B |1 2|DB | 1
2 |B |1
表架构,s
答案 0 :(得分:0)
我无法理解您为什么会这样,但解决方案可能是使用窗口函数row_number()
:
SELECT ue.institute, ue.marks, uf.relation, uf.name
FROM (SELECT institute, marks, row_number() OVER ()
FROM user_education
WHERE user_id=12) ue
FULL OUTER JOIN
(SELECT relation, name, row_number() OVER ()
FROM user_family
WHERE user_id=12) uf
USING (row_number);
然而,结果将毫无意义,因为在各个结果集中没有定义排序。