在单个查询中找到从多个表中的数据

时间:2019-02-02 19:51:24

标签: sql postgresql

我在PostgreSQL工作,我proble是这样的: 我有3个具有不同ID序列化的表。例如,如果我在表1中插入一行,该ID将是“00001”,如果我刀片在表3的行的编号将“00002” ....

因此,我正在尝试创建一个查询,该查询使用单个查询从三个表中获取数据。我不知道是否有必要创建一个函数plpgsql或仅使用一个简单的查询,我还没有做到。

我想是这样的:(但在PostgreSQL)

function getData(ID){
  if( ID exists in table 1){
    return select * from table 1
  }
  if( ID exists in table 2){
    return select * from table 1
  }
  if( ID exists in table 3){
    return select * from table 3
  }
}

但是,当然,此代码是另一种语言,错误的是伪代码。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

为什么不只使用union all

select t1.* from table1 t1 where t1.id = 1
union all
select t2.* from table2 t2 where t2.id = 1
union all
select t3.* from table3 t3 where t3.id = 1