postgresql连接2个表

2023-12-30

我有2个表tab1和tab2,tab2(tab1_id)引用tab1(id)

tab2 与 tab1(id) 具有不同的值

我需要一个将 tab1 与 tab2 中的操作列连接起来的连接, 以及 id 的最新值。

tab1 :-


 id | user_file_id |    created_date     |    modified_date    
----+--------------+---------------------+---------------------
  2 |          102 | 2012-01-12 01:23:46 | 2012-03-04 16:52:28
  4 |          104 | 2012-01-12 15:45:10 | 2012-01-15 02:23:40
  6 |          106 | 2012-01-18 00:14:34 | 2012-01-24 20:17:49
  7 |          107 | 2012-02-02 01:07:14 | 2012-04-17 09:29:17
  8 |          108 | 2012-02-15 13:16:24 | 2012-03-26 10:30:51
  9 |          109 | 2012-02-20 18:08:48 | 2012-04-09 06:14:58
 10 |          110 | 2012-02-24 20:49:10 | 2012-03-23 11:36:41
 11 |          111 | 2012-03-05 22:38:14 | 2012-03-16 04:29:35
(8 rows)


tab2:-

 id | action | tab1_id 
----+--------+---------
  1 |      1 |       2
  3 |      2 |       2
  4 |      1 |       2
  5 |      2 |       2
  6 |      1 |       2
  7 |      3 |       2
  2 |      1 |       4
  8 |      1 |       6
  9 |      1 |       7
 10 |      1 |       8
 11 |      1 |       9
 12 |      1 |      10
 13 |      1 |      11
(13 rows)

tab1 和 tab2 都加入以获得输出:-

id | user_file_id |    created_date     |    modified_date    | action 
----+--------------+---------------------+---------------------+--------
  2 |          102 | 2012-01-12 01:23:46 | 2012-03-04 16:52:28 |      3
  4 |          104 | 2012-01-12 15:45:10 | 2012-01-15 02:23:40 |      1
  6 |          106 | 2012-01-18 00:14:34 | 2012-01-24 20:17:49 |      1
  7 |          107 | 2012-02-02 01:07:14 | 2012-04-17 09:29:17 |      1
  8 |          108 | 2012-02-15 13:16:24 | 2012-03-26 10:30:51 |      1
  9 |          109 | 2012-02-20 18:08:48 | 2012-04-09 06:14:58 |      1
 10 |          110 | 2012-02-24 20:49:10 | 2012-03-23 11:36:41 |      1
 11 |          111 | 2012-03-05 22:38:14 | 2012-03-16 04:29:35 |      1
(8 rows)

Try:

select t1.*, t2.action
from tab1 t1
join (select t.*,
             row_number() over (partition by tab1_id order by id desc) rn
      from tab2 t) t2
  on t1.id = t2.tab1_id and t2.rn = 1

如果您希望 tab1 上的某一行在 tab2 上没有记录任何操作,请将联接更改为左联接。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

postgresql连接2个表 的相关文章

  • 为什么我们不能有多个主键?

    我知道表中不能有超过 1 个主键 但技术原因是什么 直接拉取自SO https stackoverflow com questions 217945 can i have multiple primary keys in a single
  • 使用另一个表中的数据查找并替换 MySQL 中的字符串

    我有两个 MySQL 表 我想使用另一个表中的数据查找和替换一个表中的文本字符串 Table texts messages thx guys i think u r great thx again u rock Table dictiona
  • Sql 查询:Sum,表中所有可能的行组合

    SQL Server 2008 R2 表结构示例 create table TempTable ID int identity value int insert into TempTable values 6 insert into Tem
  • 从多个表中选择 - 一对多关系

    我有这样的表 表产品 身份证 姓名 表格图像 产品 ID 网址 订单号 表价 产品 ID 组合 货币 价格 表数量 产品 ID 组合 数量 表 Product 与其他表是一对多关系 我需要查询表并得到类似这样的结果 伪数组 ProductI
  • 如何在没有 EF 的 ASP.NET MVC 中使用普通 sql?

    我有一个使用 linq to sql 的类 如何在 ASP NET MVC 3 中使用普通 sql 而不使用 EF 来实现相同的功能 public ActionResult Index var List from c in db OFFIC
  • Oracle 获取列值发生变化的行

    假设我有一张桌子 比如 ID CCTR DATE 1 2C 8 1 2018 2 2C 7 2 2018 3 2C 5 4 2017 4 2B 3 2 2017 5 2B 1 1 2017 6 UC 11 23 2016 还有其他字段 但我
  • 基于列顺序的查询速度

    数据库中列类型的顺序对查询时间有影响吗 例如 具有混合排序 INT TEXT VARCHAR INT TEXT 的表的查询速度是否会比具有连续类型 INT INT VARCHAR TEXT TEXT 的表慢 答案是肯定的 这确实很重要 而且
  • 仅当变量不为空时 SQL 添加过滤器

    您好 我有疑问如下 SELECT route id ROUTE ID FROM route master NOLOCK WHERE route ou 2 AND route query l s query AND lang id 1 这里
  • Postgresql 中的 id 列位置重要吗?

    我正在测试删除主键列 id 的迁移 我想使用外键作为主键 当我运行并恢复迁移时 我看到表的状态是相同的 只是 id 列现在是最后一个 它会以任何方式改变我的数据库的行为吗 我是否应该费心去恢复迁移恢复代码中的列顺序 理论上一切都应该没问题
  • 在同一个表上组合两个 SQL SELECT 语句

    我想结合这两个 SQL 查询 SELECT FROM Contracts WHERE productType RINsell AND clearTime IS NULL AND holdTime IS NOT NULL ORDER BY g
  • MySQL 子查询返回多行

    我正在执行这个查询 SELECT voterfile county Name voterfile precienct PREC ID voterfile precienct Name COUNT SELECT voterfile voter
  • 如何检测 Postgres 中持有锁的查询?

    我想不断跟踪 postgres 中的互锁 我碰到锁具监控 https wiki postgresql org wiki Lock Monitoring文章并尝试运行以下查询 SELECT bl pid AS blocked pid a us
  • 如何打印Oracle中过程的定义?

    oracle中有没有办法查看过程的结构是什么 我正在尝试记录并运行程序 并希望将实际的程序结构存储在我的日志中 您可以查询ALL SOURCE table SELECT text FROM all source WHERE owner lt
  • SQL 大表中的随机行(使用 where 子句)

    我有一个网站 人们可以在其中对汽车进行投票 向用户展示 4 辆汽车 他 她可以投票选出他们最喜欢的汽车 桌子cars有重要的列 car id int 10 not auto increment so has gaps views int 7
  • SQL Server 查询结果集的大小

    SQL Server 中是否有确定结果集中 Mgmt Studio 查询中返回的数据大小 以 MEGS 为单位 您可以打开客户端统计信息 查询菜单 包括客户端统计信息 它给出执行查询时从服务器返回的字节数
  • pq:无法调整共享内存段的大小。设备上没有剩余空间

    我在仪表板上有许多面板 数量约为 6 个 用于显示数据点图表 对 PostgreSQL 数据库的 Dockerized 实例进行查询 直到最近 面板都工作正常 有些面板停止工作并报告如下错误 pq 无法将共享内存段 PostgreSQL 2
  • SQL - 为每条记录调用存储过程

    我正在寻找一种方法来为 select 语句的每条记录调用存储过程 SELECT SomeIds SELECT spro Id FROM SomeTable as spro INNER JOIN Address addr ON addr Id
  • 如何通过循环变量在 dbt 中多次运行 SQL 模型?

    我有一个 dbt 模型 测试模型 接受地理变量 zip state region 在配置中 我想通过循环变量来运行模型三次 每次使用不同的变量运行它 问题是 我有一个如下所示的宏 它将变量附加到输出表名称的末尾 即运行测试模型 with z
  • 更新plpgsql中触发器函数中的多列

    给出以下架构 create table account type a id SERIAL UNIQUE PRIMARY KEY some column VARCHAR create table account type b id SERIA
  • Postgresql插入触发器设置值

    假设在 Postgresql 中 我有一个表T它的一栏是C1 我想在新记录添加到表中时触发一个函数T 该函数应该检查列的值C1在新记录中 如果它为 null 空 则将其值设置为 X 这可能吗 您需要触发器是正确的 因为为列设置默认值对您不起

随机推荐

  • 带有 PowerShell 的 Rapidshare API

    FreeUploadServer Invoke RestMethod Uri http api rapidshare com cgi bin rsapi cgi sub nextuploadserver Invoke RestMethod
  • 如何将 R 数据帧写入 Google Cloud Storage 存储桶文件夹

    我想将 R 数据帧写入 Google Cloud Storage 存储桶 我在用googleCloudStorageRR 中的库 这是我的代码 START options googleAuthR scopes selected https
  • Cassandra的索引结构是怎样的

    Cassandra使用LSM树进行存储 那么cassandra的索引结构到底是怎样的呢 例如 Mongo 和 Couchbase 都使用 BTree 这取决于您实际使用的 Cassandra 版本 对于 3 4 之前的版本 索引被实现为隐藏
  • MYSQL 逗号分隔列表,可以添加和删除值吗?

    我有一个逗号分隔的列表 我将其存储在 mysql 表的 varchar 字段中 是否可以直接使用 sql 查询在列表中添加和删除值 或者我必须从表中取出数据 在 PHP 中操作并将其替换回 mysql 中 mysql中的InnoDB和MyI
  • 将 python-igraph 图转换为 networkx

    最近我一直在使用 python igraph 包 我的所有代码都基于我使用 igraph 创建的图表 现在 我需要为我的图计算一些度量 这些度量显然是在 networkx 中实现的 而不是在 igraph 中实现的 例如 katz cent
  • 为什么android HttpURLConnection缓存输入流结果?

    我正在尝试获取 xml 文件 但它似乎已被缓存 这是我的代码 URL url new URL http delibere asl3 liguria it SVILUPPO elenco xml asp rand new Random nex
  • 创建“Copyable”类型接口而不是使用“Cloneable”是否有意义?

    我有一些代码需要发送对象的副本 此要求是因为调用的服务 运行时库 会修改发送的对象 该对象还需要公开设置器 以防doThing下面的方法需要设置任何字段ImportantObj班级 此实现正在等待更改 但没有合理预期会在不久的将来发生更改
  • SQL - 使用 CASE 语句更新,我需要多次重复相同的 CASE 吗?

    我的 UPDATE 语句大致如下 UPDATE customer SET forenames ot forenames surname CASE WHEN ot safeplace IS NULL THEN test SAFEPLACE I
  • Spring Data JPA“无法找到 List [重复]

    这个问题在这里已经有答案了 很难弄清楚我是否遇到了错误或做了一些愚蠢的事情 Spring Boot v2 0 0 M7 spring data jpa spring data rest MySQL 以下 Query Query select
  • 如何退出 Google+ 帐户?

    在 Android 应用程序上注册 Google plus 后 我如何注销 以便可以使用另一个帐户登录 不知道是否GoogleAuthUtil invalidateToken是不是答案 Thanks 如果您正在使用Google 登录 htt
  • 给定一个 Java InputStream,我如何确定流中的当前偏移量?

    我想要一些通用的 可重复使用的东西getPosition 方法将告诉我从流的起点读取的字节数 理想情况下 我希望它能够与所有输入流一起使用 这样当我从不同的来源获取它们时 我就不必包装它们中的每一个 这样的野兽存在吗 如果没有 任何人都可以
  • Oracle sql 中的“show create table”等效项

    在 MySql 中 您可以使用以下命令查看表定义 列及其数据类型等 show create table table name oracle sql有类似的功能吗 如果您询问有关 SQL Plus 命令 show create table t
  • 使用 Bootstrap-Vue 时,如何防止单击嵌套 b-input 组件时关闭 b-dropdown?

    我很确定我只是不明白如何实现 Vue事件修饰符 https v2 vuejs org v2 guide events html Event Modifiers 根据该文档 我所要做的就是添加以下内容 a a 以下是我如何将示例解释为我的哈巴
  • Python 日志记录 - 根据名称确定级别号

    Python 日志记录级别可以使用以下方式注册logging addLevelName 有没有一种方法可以从级别名称获取Python日志编号 打电话后addLevelName 结果级别的处理方式与所有标准级别完全相同 gt gt gt im
  • 在多级逻辑回归中,SE 如何高于 1000? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 也许我的问题无法具体 但是当拟合 glme 模型 在 R 中使用 lme4 包 时 我得到其中一个参数 SE 1000 估计参数高达 16
  • 更改 UIPickerView 背景

    我想更改 UIPickerView 的边框颜色 我没有看到 UIPickerView 的色调属性 有什么办法可以做到这一点吗 或者解决方法 Thanks 您还可以屏蔽该组件 只需稍加修改 您就可以获取组件的大小并使用以下代码将其剪切出来 C
  • 使用遗传算法进行图像处理

    我想看看遗传算法在图像处理中的应用 我不知道如何为任何图像编写健身函数 假设我有一个灰度图像 它不是很清晰 现在如果我继续将生成的解决方案与该图片值匹配 那么我的解决方案会如何更好 例如更好的清晰度 增加的对比度 亮度等 我最喜欢的遗传算法
  • 为什么使用 setdefault() 创建的这个 Python 字典是乱序的?

    我刚刚开始使用 Python VBA 背景 为什么这本字典的创建顺序是乱的 不应该是a 1 b 2 等等吗 class Card def county self c 0 l 0 groupL groupL for Loop for n in
  • WordPress:更改管理子菜单顺序

    我已经创建并注册了一个管理页面作为 帖子 管理菜单下的子菜单 但问题是它出现在 wp 子菜单的末尾 即 标签 之后 如何更改此自定义管理页面子菜单条目的顺序以使其显示在 添加新项 之后 我正在使用此功能在 edit php 帖子菜单 下注册
  • postgresql连接2个表

    我有2个表tab1和tab2 tab2 tab1 id 引用tab1 id tab2 与 tab1 id 具有不同的值 我需要一个将 tab1 与 tab2 中的操作列连接起来的连接 以及 id 的最新值 tab1 id user file