从不同模式中的两个同名表中查询相同的列名

时间:2014-12-17 09:35:52

标签: postgresql

我有两个模式说'网络'和' sub_internals'。架构包含一个名为' Connection_Point'的表。具有相同的列名称,例如' Ao_id',Conn_objID,Loc_type,netw_type。

我想从两个表中获取Conn_objID和Loc_type列。规则是如果Conn_objID保持值' dtr'那么Loc_type值应该是' Primary'或者' secondary'。现在我想查询以值' dtr'开头的Conn_objID列。并且没有主要的'和'中学'因为Loc_type.I中的值已经对单个表进行了查询并且运行正常。从表中查询时遇到了什么。如何使用postgreSQL完成。我所做的查询是

SELECT "Conn_objID","Loc_type" 
FROM network."Connection_Point"
WHERE ("Conn_objID" LIKE 'dtr%' AND "Loc_type"  NOT LIKE ('Primary%')) 
  AND ("Conn_objID" LIKE 'dtr%' AND "Loc_type"  NOT LIKE ('Secondary%'))

1 个答案:

答案 0 :(得分:0)

如果您只想将两个模式中的表中的数据提取到单个结果集中,则可以使用UNION

SELECT "Conn_objID","Loc_type" 
  FROM network."Connection_Point"
  WHERE ("Conn_objID" LIKE 'dtr%' AND "Loc_type"  NOT LIKE ('Primary%')) 
    AND ("Conn_objID" LIKE 'dtr%' AND "Loc_type"  NOT LIKE ('Secondary%'))
UNION
SELECT "Conn_objID","Loc_type" 
  FROM sub_internals."Connection_Point"
  WHERE ("Conn_objID" LIKE 'dtr%' AND "Loc_type"  NOT LIKE ('Primary%')) 
    AND ("Conn_objID" LIKE 'dtr%' AND "Loc_type"  NOT LIKE ('Secondary%'));