查询使用表子表获取父表

时间:2018-01-03 08:58:58

标签: sql postgresql

我正在寻找查询以使用子表名和子表模式获取父表详细信息(名称)。

我浏览了网页,但没有得到任何疑问。

CREATE TABLE smt.items (
    item_code INTEGER PRIMARY KEY DEFAULT '1001'
    ,item_name CHARACTER(35) NOT NULL
    ,purchase_unit CHARACTER(10)
    ,sale_unit CHARACTER(10)
    ,purchase_price NUMERIC(10, 2)
    ,sale_price NUMERIC(10, 2)
    );

CREATE TABLE smt.sub_items (
    sub_item_id INTEGER PRIMARY KEY
    ,sub_items_name CHARACTER(35) NOT NULL
    ) inherits (smt.items);

1 个答案:

答案 0 :(得分:2)

这样的事情:

select bt.relname as table_name, bns.nspname as table_schema 
from pg_class ct 
  join pg_namespace cns on ct.relnamespace = cns.oid 
  join pg_inherits i on i.inhrelid = ct.oid 
  join pg_class bt on i.inhparent = bt.oid 
  join pg_namespace bns on bt.relnamespace = bns.oid 
where bt.relkind <> 'p'
  and cns.nspname = 'public'
  and ct.relname = 'child_table_name';