问题标签 [self-join]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3399 浏览

sql - 自联接、交叉联接和分组

我有一个来自多个来源的温度样本表,我想在设定的时间间隔内找到所有来源的最低、最高和平均温度。乍一看,这很容易做到:

但是,如果来源进出而不是在有问题的时间间隔内忽略丢失的来源,事情会变得更加复杂(到了我被难住的地步!)我想使用来源的最后知道的温度来寻找失踪样品。在不均匀分布的样本中使用日期时间和构建间隔(比如每分钟)会使事情变得更加复杂。

我认为应该可以通过在样本表上进行自联接来创建我想要的结果,其中第一个表的时间大于或等于第二个表的时间,然后计算分组的行的聚合值来源。但是,我对如何实际执行此操作感到困惑。

这是我的测试表:

为了进行最小值、最大值和平均值计算,我需要一个如下所示的中间表:

以下查询使我接近我想要的,但它采用源的第一个结果的温度值,而不是给定时间间隔内的最新结果:

更新: chadhoc(顺便说一句,好名字!)提供了一个很好的解决方案,不幸的是它在 MySQL 中不起作用,因为它不支持FULL JOIN他使用的。幸运的是,我相信一个简单UNION的替代方法是有效的:

更新 2:EXPLAIN MySQL为 chadhoc 的代码提供以下输出:

我能够让查尔斯的代码像这样工作:

它的解释是:

0 投票
6 回答
117806 浏览

sql - 进行递归自联接的最简单方法?

在 SQL Server 中进行递归自联接的最简单方法是什么?我有一张这样的桌子:

而且我希望能够获取仅与从特定人员开始的层次结构相关的记录。所以如果我通过 PersonID=1 请求 CJ 的层次结构,我会得到:

对于 EB,我会得到:

除了基于一堆连接的固定深度响应之外,我对此有点坚持。这会发生,因为我们不会有很多级别,但我想正确地做到这一点。

谢谢!克里斯。

0 投票
3 回答
545 浏览

sql - 帮助编写复杂的连接查询

我有一张桌子订单

如果有,请忽略数据类型拼写错误。

我想编写一个 sql 查询来帮助我获取每个供应商工厂的数据。要获取的数据包括每个供应商工厂的订单数量(一组唯一的 vendor_no、factory_no)、vendor_no、factory_no 以及 fcr_date 大于 completion_date 的订单数量。

我是 sql 新手,这个特定的查询对我来说似乎很复杂。如果有人能指导我如何编写此查询,我将不胜感激。

谢谢。

0 投票
3 回答
161 浏览

mysql - MySQL 连接问题

谁能告诉我是否可以使用自联接将以下两个查询合并为一个,如果可以,该怎么做?

查询一:

查询 2:

ugc_meta包含 中照片的相册名称ugc_contentugc_content包含相册和照片的行。rows代表照片有一个parent_content_id这是content_id父行。我没有更改表或数据库结构的选项。

目前,我正在为查询 1 中的每个结果行运行一个新查询 (query2),这是次优的;-)

谢谢!

0 投票
4 回答
627 浏览

sql - 可变数据上的自联接

我有一个包含以下数据的表:

我想编写一个查询,该查询将产生以下内容:

我知道这可以通过将表与上一个财政周进行简单的连接来轻松实现,但这并不总是简单的t1.[Fiscal Week] = t2.[Fiscal Week] - 2,因为有时差异是 3 周。

我可以通过以下方式轻松提取最大记录:

但是在抽象它以使连接起作用时,我不知所措。

如何在“小于当前记录的最大财政周”上进行自我加入?

0 投票
4 回答
21658 浏览

sql - 将 SQL 表与其自身进行比较(自联接)

我正在尝试根据混合列查找重复的行。这是我所拥有的一个例子:

现在如果我运行这个查询:

我希望能取回两个身份证。(1和2),但是我只拿回一排。

我的想法是它应该比较每一行,但我想这是不正确的?为了解决这个问题,我将查询更改为:

这给了我两行,但是根据行数,性能会迅速下降。

我为性能和结果提出的最终解决方案是使用联合:

但总的来说,我显然不明白为什么这不起作用,这意味着我可能做错了什么。有人能指出我正确的方向吗?

0 投票
1 回答
1643 浏览

ruby-on-rails - 使用 has_many 在 Ruby-on-Rails 中建模人与人之间的关系:通过

我想为一个人与另一个人的关系建模,这种关系不一定是分层的(即朋友和同事,而不是父母和孩子),我有兴趣捕捉每个关系的更多细节(例如笔记、关系类型,成立日期)。最后,我想使用 act_as_tree 关系来导航/绘制这些关系。

迁移:

型号:

问题:

  1. 如何正确定义这些表之间的关系?
  2. 由于 my_id/your_id 组合是唯一的,消除关系表上的 :id 是否有意义?
  3. 'my_id' 和 'your_id' 字段是否有更好的名称来利用 RoR 的约定?
  4. 如果其中一列不是名称“parent_id”,我会在 act_as_tree 关系上遇到困难吗?
0 投票
13 回答
40456 浏览

sql - 自联接的解释

我不明白自我加入的必要性。有人可以向我解释一下吗?

一个简单的例子会很有帮助。

0 投票
4 回答
7496 浏览

sql - 有人可以向我解释本教程中的运行总计和 SQL 自联接吗?

我正在阅读这里的教程:http ://www.1keydata.com/sql/sql-running-totals.html这一切都是有道理的,直到它突然变得非常荒谬,令人难以置信的复杂,当它得到排名时,中位数,运行总数等。有人可以用简单的英语解释该查询如何产生运行总数吗?谢谢!

0 投票
4 回答
1453 浏览

sql - 同一张表上的传递 SQL 查询

嘿。考虑下面的表格和数据......

  • 以上数据代表了一些数据跨服务器的执行流程的日志。
  • 例如,一些数据已经从一些'outside-server1' 流向了一堆'my-servers',最后流向了'others-server2'。

问题 :

1)我需要将此日志以可表示的形式提供给客户端,他不需要知道任何关于“我的服务器”的信息。我应该提供的只是输入我的基础设施的数据的时间戳以及它离开的时间;深入了解以下信息。

我想写同样的sql!有人可以帮忙吗?注意:可能不会一直有 3 个“我的服务器”。它因情况而异。例如,可能涉及 4 个“我的服务器”,例如 data2!

2) SQL 是否有其他替代方案?我的意思是存储过程/等?

3) 优化?(记录数量巨大!截至目前,每天大约有 500 万条记录。我们应该显示长达一周的记录。)

在此先感谢您的帮助!:)