相关疑难解决方法(0)

在查询从中继承的父级时,获取行的源表的名称

我有一个Postgres数据库,其中包含几个继承的表.我可以SELECT从父表中获取所有子项的结果,但需要获取每个结果源自的表的名称.

这里找到的方法不起作用,因为我只查询一个表,并且不知道哪些孩子会提前出现在结果中.

sql postgresql inheritance

7
推荐指数
1
解决办法
1185
查看次数

针对多列的hstore用例

我在决定使用哪种方法时遇到了一些麻烦.

我有几个实体"类型",让我们称它们为A,B和C,它们共享一定数量的属性(大约10-15).我创建了一个名为ENTITIES的表,以及每个常用属性的列.

A,B,C也有一些(大部分)唯一属性(所有布尔值,可以是10到30左右).我不确定在对表建模时遵循的最佳方法是什么:

  1. 在ENTITIES表中为每个属性创建一个列,这意味着不共享该属性的实体类型将只具有空值.
  2. 对每个实体类型的唯一属性使用单独的表,这有点难以管理.
  3. 使用hstore列,每个实体都将在此列中存储其唯一标志.
  4. ???

我倾向于使用3,但我想知道是否有更好的解决方案.

postgresql database-design hstore

6
推荐指数
1
解决办法
2063
查看次数

左连接,从列派生的动态表名

我是PostgreSQL的新手,我想知道是否可以使用numbertable tbc作为左连接中表名的一部分'pa' || number.因此,例如,如果数字是456887,我想要与表pa456887左连接.像这样的东西:

SELECT tdc.cpa, substring(tdc.ku,'[0-9]+') AS number, paTab.vym 
FROM public."table_data_C" AS tdc
LEFT JOIN concat('pa' || number) AS paTab ON (paTab.cpa = tdc.cpa)
Run Code Online (Sandbox Code Playgroud)

我只想使用PostgreSQL,而不是PHP中的其他代码.

sql postgresql dynamic dynamic-sql tablename

6
推荐指数
1
解决办法
5199
查看次数

根据表值找出哪个模式

我的数据库基于客户端分成模式(即:每个客户端都有自己的模式,具有相同的数据结构).

我也碰巧有一个外部动作,不知道它应该针对哪个架构.它来自系统的另一部分,它没有客户端的概念,也不知道它在哪个客户端设置中运行.在我处理它之前,我必须找出请求需要定位的模式

为了找到正确的模式,我必须找出哪个包含R特定唯一ID 的记录(字符串)

从我的理解,以下

SET search_path TO schema1,schema2,schema3,...
Run Code Online (Sandbox Code Playgroud)

将只查看schema1中的表(或与表匹配的第一个模式),并且不会进行全局搜索.

有没有办法让我在所有模式中进行全局搜索,或者我只需要使用for循环并迭代所有模式,一次一个?

sql django postgresql database-connection postgresql-9.2

4
推荐指数
1
解决办法
674
查看次数

搜索多个表,并在结果行中显示表名

如何构造SQL语句以跨多个平面无关表运行,并使用select的结果和结果来自的表的名称显示结果.

这个场景是我有几个表中每个都有相同列名的表.我收集的是来自外部各方的数据,因为它存储在不同的表中.

相同的表格如下:

Table 1: pid, parent_name, student_name, student_number, class_name, columnN
Table 2: pid, previous_school, previous_school, student_number, columnN
Table 3: pid, student_name, student_number, parent_name, column4, columnN
Table 14: pid, student_number, parent_name, column4, columnN
Table N: pid, previous_school, parent_name, column4, columnN
Run Code Online (Sandbox Code Playgroud)

我需要一个student_name在所有表中搜索的SQL语句在伪代码中:for each table, find a student named john doe and return to me the row where you got the result and the table where you found the result

在以下演示文稿中给出结果:

john doe, Table 1, pid
john doe, Table …
Run Code Online (Sandbox Code Playgroud)

sql postgresql database-design dynamic-sql

1
推荐指数
1
解决办法
1610
查看次数