On 02.08.23 21:54, PG Doc comments form wrote:
In the provided example, the cities table and the capitals table have a
parent-child relationship through inheritance. However, querying the cities
table directly (e.g., SELECT name, elevation FROM cities WHERE elevation >
500;) will not automatically include data from the child table, capitals.
Inheritance in PostgreSQL does not implicitly combine data from parent and
child tables in a single query.

This observation is patently incorrect:

CREATE TABLE cities (
  name       text,
  population real,
  elevation  int     -- (in ft)
);

CREATE TABLE capitals (
  state      char(2) UNIQUE NOT NULL
) INHERITS (cities);

INSERT INTO cities (name) VALUES ('Ithaca');
INSERT INTO capitals (name, state) VALUES ('Albany', 'NY');

SELECT * FROM cities;
  name  | population | elevation
--------+------------+-----------
 Ithaca |            |
 Albany |            |
(2 rows)

SELECT * FROM capitals;
  name  | population | elevation | state
--------+------------+-----------+-------
 Albany |            |           | NY
(1 row)



Reply via email to