从postgresql中的多个表中获取数据

时间:2016-08-01 07:27:31

标签: sql postgresql

我正在开发一个应用程序,我想从多个通过外键连接的表中获取记录。我正在使用的查询是

**int

查询结果为

Result

您可以看到数据在其中重复。我只想要一次记录。我不想重复。我想要这样的东西

*i = &newvalue

我想要的结果:

*int

通过您的查询获取的结果

enter image description here

总行数为5

更多信息

Table 1

Table 2

我希望两个表中的 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

T1 T2

1 个答案:

答案 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);

然而,结果将毫无意义,因为在各个结果集中没有定义排序。