首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在psql中如何在同一张表中分别显示一个人的父母

在psql中,可以使用自连接(self join)的方式在同一张表中分别显示一个人的父母。以下是具体的步骤:

  1. 首先,假设我们有一张名为"person"的表,其中包含了人员的信息,包括姓名和父母的关联信息。
  2. 创建一个自连接的查询,将表与自身连接起来。在查询中,使用别名来区分两个不同的表实例,一个用于代表人员自身,另一个用于代表父母。
代码语言:txt
复制
SELECT p.name AS person_name, f.name AS father_name, m.name AS mother_name
FROM person p
JOIN person f ON p.father_id = f.person_id
JOIN person m ON p.mother_id = m.person_id
WHERE p.name = '某个人的姓名';

在这个查询中,我们使用了两次表"person"的实例。第一个实例通过别名"p"表示要查询的人员自身,第二个实例通过别名"f"表示要查询的人员的父亲,第三个实例通过别名"m"表示要查询的人员的母亲。

我们使用了两次的"JOIN"语句来连接这两个表实例。第一个"JOIN"语句连接了人员自身和父亲的信息,通过"father_id"字段和"person_id"字段进行关联。第二个"JOIN"语句连接了人员自身和母亲的信息,通过"mother_id"字段和"person_id"字段进行关联。

最后,我们使用了"WHERE"子句来指定要查询的人员姓名,这个姓名可以替换为具体的人员姓名。

通过执行以上查询,你可以在同一张表中分别显示一个人的父亲和母亲的信息。如果有多个符合条件的结果,将会显示多行数据。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PostgreSQL入门和高维向量索引

内部命令,以反斜线开始 \ ,: \l 显示所有数据库 2....\d:列出当前数据库所有表格。 \d [table_name]:列出某一表格结构。 \du:列出所有用户。 \e:打开文本编辑器。...1、列举数据库:\l 2、选择数据库:\c 数据库名 3、查看该某个库所有:\dt 4、切换数据库:\c interface 5、查看某个库某个结构:\d 名 6、查看某个库某个记录...我们可以通过用逗号分隔方法声明多个数据库。 一个包含数据库名文件可以通过对该文件前缀 @ 来声明.该文件必需和 pg_hba.conf 同一个目录。...一个包含用户名文件可以 通过文件名前面前缀 @ 来声明,该文件必需和 pg_hba.conf 同一个目录。

1.7K30
  • 从零开始学PostgreSQL (一):Centos8 RPM安装PostgreSQL16

    #pg_ident.conf 此文件用于用户名称映射,它允许将外部认证系统( LDAP 或者系统用户账户)用户名映射到 PostgreSQL 数据库角色。这对于整合外部认证系统非常有用。...#postgresql.auto.conf 当 postgresql.conf 被重新加载时,任何在运行时动态更改设置都会被写入这个文件。...psql快捷命令 快捷命令 别名 描述 \c \connect 连接到指定数据库 \q \quit 退出 psql 客户端 \list \l 列出所有可用数据库 \dt 列出当前数据库所有...显示所有可用元命令 \echo \e 输出一条信息 \timing 开启或关闭命令执行时间显示 \set 设置一个变量 \unset 取消设置一个变量 \include \i 包含一个文件内容...\watch 监视变化 \unwatch 取消监视变化 \copy 用于数据导入导出 COPY 命令简化形式 \password 更改用户密码 安装报错 [root@ PostgreSQL

    8510

    PG Logical Replication 逻辑复制

    PG10 到 PG11 逻辑复制 我下面演示PG环境是单机多实例方式部署同一台物理机上。部署方式可以参考 上一篇博客。.../bin/psql --port 5434 -d postgres -f /usr/local/pgsql-10.10/schemadump.sql 5、源实例PG10每个数据库,创建一个捕获所有发布...注意:逻辑复制每个数据库中分别工作,因此需要在每个数据库重复。...),同时必须包含主键,否则delete和update报错 4、一个publisher可以包含一或多张,一可以有一个或多个publishers 5、一个发布者可以有多个订阅者订阅,一个订阅者也可以同时订阅多个发布者...,同一个数据库下订阅者不能对同一个发布者重复订阅(避免数据冲突) 6、逻辑复制不同于流复制,不是严格主从关系,订阅者端普通依然可以进行增删改操作 7、同步结构需要在发布者和订阅者两边保持一致

    1.6K20

    何在Ubuntu 16.04上安装和使用PostgreSQL

    本指南中,我们将演示如何在Ubuntu 16.04 VPS实例上安装Postgres,并介绍一些使用它基本方法。...不切换帐户情况下访问Postgres提示 您也可以直接使用有sudo权限postgres帐户运行您想要命令。 例如,最后一个示例,我们只想进入Postgres提示符。...----------+-------+------- public | playground | table | sammy (1 row) 添加,查询和删除数据 现在我们有了一个,我们可以在其中插入一些数据...让我们添加一幻灯片和一个秋千。我们通过调用我们想要添加,命名列然后为每列提供数据来完成此操作。...如果我们发现我们工作人员使用单独工具来跟踪维护历史记录,我们可以通过键入以下内容来删除此列: ALTER TABLE playground DROP last_maint; 如何更新数据 我们知道如何向添加记录以及如何删除它们

    5.2K10

    何在Ubuntu 18.04上安装和使用PostgreSQL

    例如,最后一个示例,您被指示通过首先切换到postgres用户然后运行psql以打开Postgres提示来进入Postgres提示。...例如,不要将列名包装在引号,但是您输入列值确实需要引号。 另外要记住是,您不要为equip_id列输入值。这是因为只要创建新行,就会自动生成此项。...添加和删除列 创建后,您可以修改它以相对容易地添加或删除列。...更新数据 到目前为止,您已经学习了如何向添加记录以及如何删除它们,但本教程尚未介绍如何修改现有条目。 您可以通过查询所需记录并将列设置为您要使用值来更新现有条目的值。...您可以查询“swing”记录(这将匹配每个 swing)并将其颜色更改为“red”。

    5.4K60

    PostgreSQL主从复制--逻辑复制

    ,实时备库apply,事务结束时,备库立马能见到数据 物理复制一致性、可靠性高,不必担心数据逻辑层面不一致 但是其又在实际使用场景存在一些无法满足需求,例如: 无法满足指定库或部分复制需求...将多个数据库实例数据汇聚到同一个目标库或将一个库数据分发到多个不同库 不同版本之间复制 不同库名之间同步 对于以上场景,物理复制时无法满足,因此逻辑复制应运而生了。...逻辑复制部署 PS:以下逻辑从库可以机器上部署,如在原先从库上修改,需停止原实例,并将recovery.conf文件删除或重命名(修改为recovery.conf.done) 2.1 修改主库...2.10 添加复制所需 逻辑主库和逻辑从库均添加一,并添加到发布列表 /** 主库上创建结构 */ sourcedb=# create table logical_tb2(id int...------------ pub1 | public | logical_tb1 pub1 | public | logical_tb2 (2 rows) 此时已加入一进入发布列表

    4.3K31

    Oracle经典面试题,你都掌握了吗?

    3代年龄,而t_idid一样同一个人属性 查询结果列依次为姓名、性别、年龄,而type列决定姓名、性别、年龄 */ /*使用分组,先对t_id进行分组,然后用decode函数过滤数据,例:...同一个人type没有重复数值所以 decode(type, 1, value)返回值只有一个,最大值也就是这个值 */ select max(decode(type, 1, value)) "姓名"...通过where过滤生成3type分别等于1(姓名)、2(性别)、3(年龄)3虚拟 : 再通过where 连接条件 三t_id相等同一个人或者说同一条记录(行) */ select...,而用分组做,使用yj01就能做出来了,所以这道题考察应该是连知识/*这两中有的月份有的部门业绩是空,而用前几道题做法,不匹配条件值会被过滤掉,例如month=一月份只有1部门,形成表里...deptno只有1和二月份、三月份形成deptno无法匹配而yjdept包含了所有部门编号deptno,这时就可以用到外连接特性(满足一内容都显示基础上,连接另外一,如果连接匹配则正常显示

    88420

    Oracle 经典面试题分享

    id一样同一个人属性 查询结果列依次为姓名、性别、年龄,而type列决定姓名、性别、年龄 */ /*使用分组,先对t_id进行分组,然后用decode函数过滤数据,例:decode(type...同一个人type没有重复数值所以 decode(type, 1, value)返回值只有一个,最大值也就是这个值 */ select max(decode(type, 1, value)) "姓名"...通过where过滤生成3type分别等于1(姓名)、2(性别)、3(年龄)3虚拟 : 再通过where 连接条件 三t_id相等同一个人或者说同一条记录(行) */ select t1...其中有3条记录分别表示语文70分,数学80分,英语58分, 请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出您思路): 大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格...形成表里deptno只有1和二月份、三月份形成deptno无法匹配 而yjdept包含了所有部门编号deptno,这时就可以用到外连接特性 (满足一内容都显示基础上,连接另外一

    31520

    何在Debian 8上安装和使用PostgreSQL 9.4

    本文中,我们将向您展示如何在Debian 8 Stable实例上安装PostgreSQL并开始使用。 准备 第一件事是让Debian 8 Stable系统继续运行。...安装PostgreSQL 安装PostgreSQL之前,请确保通过更新apt包列表来获取Debian存储库最新信息: sudo apt-get update 您应该看到正在更新包列表以及以下消息...column_name2 col_type (field_length), column_name3 col_type (field_length) ); 您所见,我们为提供一个名称,然后定义我们想要列...添加,查询和删除数据 现在我们已经创建了一个,我们可以在其中插入一些数据。 让我们添加一幻灯片和一个swing。我们通过调用我们想要添加,命名列然后为每列提供数据来完成此操作。...如果我们幻灯片断开,我们将它从操场上移除,我们也可以通过键入以下内容从删除行: DELETE FROM playground WHERE type = 'slide'; 如果我们再次查询我们

    4.3K00

    RavenDB建模--常见建模方案

    RavenDB 对如何在应用程序中进行数据建模没有任何要求,我们可以使用任何形式进行建模,RavenDB 只关心如何构建数据,这就是我们后续几篇文章要讲解内容。...嵌入文档 文档模型和实体关系模型是不一样,一般来说实体关系模型每个实体都有一个对应,但是文档模型则不是这样,我们一般会像下面代码这样将所有紧密相关信息存储一个地方。...但是这种方法以下集中情况下是不可用: 当数据不属于同一文档时; 当附属内容不仅仅是住内容附属内容时,比如说王加加和油油不仅是感叹父母,还是句号父母时。...多对一 针对上一小节内容,我们可以利用多对一关系进行解决,将父母标识符存储 Child ,如下面所示: { "Name": "感叹", "Birthday": "2019...说我们有三种方法: Child 文档添加一个数组,数组存储祖父母文档 ID; 父母文档添加一个数组,数组存储孙子辈文档ID; 两者相互存储。 那么到底哪种方法更好呢?

    51310

    何在Ubuntu 18.04安装PostgreSQL高级开源数据库

    本文中,我们将学习如何在Ubuntu 18.04安装PostgreSQL(PSQL) - 高级开源数据库管理系统。它也被称为ORDBMS,即对象 - 关系数据库管理系统。...Postgresql(PSQL主要开发人员是PostgreSQL全球开发组。该程序以C编程语言使用,最初于1996年PostgreSQL许可下发布了其第一个版本。...您可以从Github下载PostgreSQL(PSQL)存储库PostGrace(Github)开发人员团队设置了一些限制,例如:您大小不能超过32 TB,最大字段大小和行大小为1 GB和1.6...按照以下步骤Ubuntu 18.04安装PostgreSQL(PSQL) - 高级开源数据库: 开始安装PostgreSQL(PSQL)之前,让我们使用以下命令更新Ubuntu 18.04软件包和存储库...createdb linuxidc  这种灵活性为根据需要创建数据库提供了多种途径 如何在Ubuntu 18.04卸载PostgreSQL(PSQL)?

    2.1K10

    林元庆破解小度问鼎最强大脑三大原理,后吴恩达时代百度 AI 突围

    挑战二:亲爱(小度VS人类选手) 比赛项目:嘉宾40父母合照随机挑选一,选手和小度同时观察该照片,40位造型一致,身材接近女生,找到该父母亲生女儿,找出女儿手中全家福照片与父母合照背面的全家福完全一致...嘉宾40父母合照随机挑选一,选手和小度同时观察该照片,40位造型一致,身材接近女生,找到该父母亲生女儿,找出女儿手中全家福照片与父母合照背面的全家福完全一致,则挑战成功。...这项挑战所涉及“隔代识别”仍属于图像识别分类的人脸识别,只是难度更大。隔代识别技术原理与人脸识别相同:形成灰度图,分别提取父母面部特征点和孩子特征点进行比对。...声纹确认技术回答是两句话到底是不是一个人问题,而声纹识别技术回答则是”给定一句话属于样本库谁说”问题。 本次挑战,小度需要识别出一段笑声是谁发出。技术上主要难点包括: 1....而在本次比赛,注册语音则变成了唱歌,测试才是正常说话。因此,模型必须能够学到同一个人在唱歌和说话时差异。这对声纹识别算法泛化能力提出了更高要求。 2.

    1K60

    PostgreSQL常用命令

    sudo service postgresql stop 数据库操作 列出所有数据库 \l 显示数据库中有哪些 \d 显示table_name定义情况 \d table_name; \d具体用法...\d后面可以跟t_pkey(索引信息)和通配符 \d+可以显示更详细信息 只显示匹配:\dt 只显示索引:\di 只显示序列:\ds 只显示视图:\dv 只显示函数:\df 列出所有的schema...:\dn 显示所有的空间:\db 列出数据库所有角色和用户:\du或\dg 显示权限分配情况:\dp或\z 创建用户数据库 CREATE DATABASE testdb 连接到用户数据库 \c...执行存储在外部文件SQL命令 \i 终端执行: psql -f 可以达到同样效果 显示信息 \echo 用于输出一行信息,比如: \echo hello...得到psql命令实际执行SQL 启动psql命令行中加-E参数,就可以把psql各种以\开头命令执行实际SQL打印出来 可以使用命令打开\关闭这个功能: \set ECHO_HIDDEN

    2.1K40

    PostgreSQL基础(三):PostgreSQL基础操作

    下面的图是默认连接方式后面都基于psql命令行(客户端)去进行操作命令绝对不要去背,需要使用时候,直接找帮助文档,psql命令行,直接注入\help,即可查看到数据库级别的一些命令 \?...逻辑结构图可以看到PGSQL一个数据库中有多个schema,每个schema下都有自己相应信息,权限粒度会比MySQL更细一些。...PGSQL,权限管理分为很多多层 server、cluster、tablespace级别:这个级别一般是基于pg_hba.conf去配置 database级别:通过命令级别操作,grant namespace...laozheng用户alter schema laozheng owner to laozheng;-- 将laozheng库下laozhengschema增,改,查权限赋予给laozheng...用户grant select,insert,update on all tables in schema laozheng to laozheng;-- 用postgres用户先构建一create

    23920

    初探向量数据库pgvector

    查看所有数据库列表 要查看当前数据库所有数据库列表,可以使用以下 SQL 命令: \l psql 命令行执行这个命令会显示所有数据库列表,包括数据库名、所有者、编码、描述等信息。...执行这个命令后,将会创建一个新名为 database_name 数据库。 显示所有列表 PostgreSQL ,\d 用于显示数据库对象信息。...可以通过以下两种方式之一运行它: \d \dt 上面的命令将显示当前数据库中所有列表。它显示名、类型(例如表、视图等)、拥有者以及其他信息。...查看表结构 PostgreSQL ,\d table_name用于显示数据库结构。...然后,我们定义了一个(vector_table),这个在数据库实际已经存在,包含了我们向量数据。 接着,我们在数据库插入一个新矢量,然后查询在这个 id 等于 1 矢量。

    3.7K40

    何在CentOS 7上安装和使用PostgreSQL

    本指南中,我们将演示如何在CentOS 7上安装Postgres并介绍一些使用它基本方法。...Owner --------+------------+-------+---------- public | playground | table | postgres (1 row) 添加...让我们添加一幻灯片和一个秋千。我们通过调用我们想要添加,命名列然后为每列提供数据来完成此操作。...首先,请记住不应引用列名,但是您输入列值确实需要引号。 要记住另一件事是我们不输入equip_id列值。这是因为只要创建新行,就会自动生成此项。...如果我们发现我们工作人员使用单独工具来跟踪维护历史记录,我们可以通过键入以下内容来删除此列: ALTER TABLE playground DROP last_maint; 如何更新数据 我们知道如何向添加记录以及如何删除它们

    4.8K11
    领券