我有一个Postgres数据库,其中包含几个继承的表.我可以SELECT从父表中获取所有子项的结果,但需要获取每个结果源自的表的名称.
这里找到的方法不起作用,因为我只查询一个表,并且不知道哪些孩子会提前出现在结果中.
我在决定使用哪种方法时遇到了一些麻烦.
我有几个实体"类型",让我们称它们为A,B和C,它们共享一定数量的属性(大约10-15).我创建了一个名为ENTITIES的表,以及每个常用属性的列.
A,B,C也有一些(大部分)唯一属性(所有布尔值,可以是10到30左右).我不确定在对表建模时遵循的最佳方法是什么:
我倾向于使用3,但我想知道是否有更好的解决方案.
我是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中的其他代码.
我的数据库基于客户端分成模式(即:每个客户端都有自己的模式,具有相同的数据结构).
我也碰巧有一个外部动作,不知道它应该针对哪个架构.它来自系统的另一部分,它没有客户端的概念,也不知道它在哪个客户端设置中运行.在我处理它之前,我必须找出请求需要定位的模式
为了找到正确的模式,我必须找出哪个包含R特定唯一ID 的记录(字符串)
从我的理解,以下
SET search_path TO schema1,schema2,schema3,...
Run Code Online (Sandbox Code Playgroud)
将只查看schema1中的表(或与表匹配的第一个模式),并且不会进行全局搜索.
有没有办法让我在所有模式中进行全局搜索,或者我只需要使用for循环并迭代所有模式,一次一个?
如何构造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) postgresql ×5
sql ×4
dynamic-sql ×2
django ×1
dynamic ×1
hstore ×1
inheritance ×1
tablename ×1