gpt4 book ai didi

postgresql - 在 PostgreSQL 表继承中选择

转载 作者:行者123 更新时间:2023-11-29 12:45:08 25 4
gpt4 key购买 nike

我有主表 product,它有基于 store_id 字段的子表 product_store_1, ..., product_store_N。产品表有规则,它们根据 store_id 向子表之一插入新行。它似乎工作正常,但主表当前不为空,我想知道错过了哪个规则。我正在努力

SELECT store_id,count(*) FROM product GROUP BY store_id;

但它对所有 product_store_N 表运行,我只想对父表运行此查询。

最佳答案

您需要在 FROM 子句中使用 ONLY

SELECT store_id,count(*) 
FROM ONLY product
GROUP BY store_id;

看这个例子:

CREATE TABLE parent (value INT);
CREATE TABLE child_a () INHERITS (parent);
CREATE TABLE child_n() INHERITS (parent);

INSERT INTO parent VALUES (0),(1),(2),(3),(4);
INSERT INTO child_a VALUES (10),(20),(30),(40),(5);
INSERT INTO child_n VALUES (50),(60),(70),(80),(6);

如果我查询select * from parent where value <10结果将是

   Value
-----
0
1
2
3
4
5
6

最后两个rows那是56属于child_achild_n分别。

获取 Parent 中的值餐 table 使用 ONLYFROM条款。即:

SELECT * FROM <b>ONLY</b> PARENT WHERE value <10

   Value
-----
0
1
2
3
4

sqlfiddle-demo

关于postgresql - 在 PostgreSQL 表继承中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27775689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com