问题标签 [outer-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 投票
3 回答
4355 浏览

sql - 完全外部联接的问题无法按预期工作

我有一个查询要从一个表中减去当前余额,而从另一个历史表中减去以前的余额。当特定产品没有当前余额但有以前的余额时,我可以正确减去它......在这种情况下,它将像 0 - 100。

但是,当产品有当前余额但没有以前的余额时,我无法得到结果。即使我对两个表都进行了完全外部联接,我的查询甚至没有选择当前余额。

以下是我的查询:

0 投票
4 回答
142642 浏览

sql-server - 左连接的前 1 个

鉴于下面的查询,dps_markers 中可能有多行具有相同的标记键,但我们只想加入第一行。如果我接受这个查询并删除前 1 和 ORDER BY,我会得到一个 mbg.marker_value 的值,但按原样运行它总是返回 null

0 投票
5 回答
37975 浏览

c# - 如何在 Linq 中进行完全外部联接?

我继承了一个设计不完全优化的数据库,我需要处理一些数据。让我对我必须做的事情做一个更常见的类比:

假设我们有一张Student桌子,一张StudentClass记录他参加过的所有课程的StudentTeacher表格,还有一张存储所有教过这个学生的老师的表格。是的,我知道这是一个愚蠢的设计,将教师存储在 Class table 上会更有意义——但这就是我们正在使用的。

我现在想清理数据,我想找到一个学生有老师但没有班级,或者有班级但没有老师的所有地方。SQL因此:

你如何在 Linq 中做到这一点?

0 投票
3 回答
249 浏览

sql - SQL:使用 MySQL 4 获取非耦合项列表

我在 SQL 方面不是那么好,我遇到了一个我不知道如何解决的问题。我已经阅读并重新阅读了一本关于 SQL 的书(O'Reilly's Learning SQL)的部分内容,我希望其中包含我需要的信息,但我还没有找到。

我的问题如下。我将使用一个简化的示例使其更易于讨论。

我有三张桌子,car,rim 和两者的组合:carRim。

在表 carRim 中,我有一个额外的 price 属性,因为每种类型的汽车的轮辋价格可能不同。我的一个限制是,每种类型的轮辋只能与每种类型的汽车耦合一次。所以车圈的所有组合都应该是独一无二的。

如果我想为汽车添加轮辋,我需要一个尚未与该汽车耦合的轮辋列表。为此,我认为我需要轮辋表和 carRim 表分别用于轮辋的总列表和已经耦合到我要添加轮辋的汽车的 carRims 列表。

我编写了(简单)查询来制作与特定汽车耦合的轮辋列表,以下示例中,汽车 ID 为 9。

但现在我需要尚未与特定汽车耦合的轮辋列表。问题是,如果我进行 LEFT OUTER JOIN,我得到的列表会被轮辋与其他汽车的耦合“污染”,因此“WHERE carRims.carId IS NULL”的过滤条件不起作用。

另一个挑战是我不能使用 MySQL 5 的任何新语法,比如子查询,因为我的客户端使用的是 MySQL 4,此时无法升级。

是否可以在 MySQL 4 中编写针对此问题的查询,我怀疑可以。

谢谢!

0 投票
3 回答
41802 浏览

hibernate - (懒惰)使用 Hibernate Criteria API 的 LEFT OUTER JOIN

我想使用 Criteria API 在两个表之间执行 LEFT OUTER JOIN。我在 Hibernate 文档中能找到的只有这个方法:

但是,这要么执行内部联接,要么执行右外部联接,因为它返回的结果数量。

我也希望我的加入是懒惰的。我怎样才能做到这一点?

干杯!

更新:似乎使用别名会自动加入 INNER JOIN。“背景故事”中有些东西我还没有掌握。所以,今天没有别名。这给我留下了对这两个表应用限制的问题,因为它们都有一个列(或属性,如果这更合适的话)' name '。

0 投票
1 回答
910 浏览

tsql - 您是否应该在 NHibernate 和 Sql Server 2008 中使用外连接获取?

external join fetching上,Nhibernate文档说:

如果您的数据库支持 ANSI 或 Oracle 样式的外连接,则外连接获取可能会通过限制往返数据库的次数来提高性能(以数据库本身执行更多工作为代价)。外连接获取允许在单个 SQL SELECT 中检索通过多对一、一对多或一对一关联连接的对象图。

我正在尝试决定是否应该在当前项目(使用NHibernate)中使用外连接获取。为此,我将测试有无外连接获取的加载时间。但是我想知道在使用Sql Server 2008时总体上是好还是坏的策略。

使用外部连接获取通常比使用 Sql Server 2008 更好吗?

如何确定是否使用它?(除了通过性能测试和查询分析)

谢谢

0 投票
6 回答
8989 浏览

sql - Oracle(旧?)加入 - 用于转换的工具/脚本?

我一直在移植 oracle 选择,并且遇到了很多这样的查询:

...和:

是否有任何指南/教程用于转换 (+) 语法的所有变体?甚至叫什么语法(所以我可以搜索谷歌)?

更好..是否有工具/脚本可以为我进行这种转换(首选免费)?某种优化器?我有大约 500 个这样的查询要移植..

这个标准是什么时候淘汰的?任何信息表示赞赏。

0 投票
1 回答
2369 浏览

mysql - Linq to Entities 和 LEFT OUTER JOIN 问题与 MANY:1 关系

有人可以告诉我,为什么 Linq to Entities 将多对一关系转换为left outer join而不是inner join?因为对 DB 本身存在引用约束,以确保在正确的表中有记录,所以inner join应该使用它(它会工作得更快)

如果关系多到 0..1 left outer join将是正确的。

问题

是否可以以某种方式编写 LINQ,以便将其转换为inner join而不是left outer join. 它将大大加快查询执行速度……我以前没有使用过 eSQL,但在这种情况下使用它是否明智?它会解决我的问题吗?

编辑

我更新了标签以包含我在后台使用的技术:

  • 实体框架 V1
  • 用于 Mysql 的 Devart dotConnect
  • MySql 数据库

如果有人可以测试在 Microsoft SQL 服务器上是否也是如此,那么如果这是 Devart 的问题或者它是一般的 L2EF 功能,它也会给我一些见解......但我怀疑 EF 是这里的罪魁祸首。

0 投票
4 回答
6681 浏览

sql - 替换 LEFT OUTER JOIN 中返回的空值

当它返回时,Date 列中有 NULL 值,其中没有来自 WO_BreakerRail 的匹配行。有没有办法用@date 替换那些NULL 值?

0 投票
4 回答
1015 浏览

sql - 在一个普通表上加入,你如何获得一个 FULL OUTER JOIN 来扩展另一个表?

我已经在 StackOverflow 和 Google 上搜索过这个问题的答案。

我正在尝试创建一个 Microsot SQL Server 2008 视图。不是存储过程。不是函数。只是一个查询(即一个视图)。

我有三张桌子。第一个表定义了一个公共键,比如“CompanyID”。其他两个表有一个有时很常见的字段,比如“EmployeeName”。

我想要一个表结果,当我的 WHERE 子句说“WHERE CompanyID = 12”时,它看起来像这样:

我尝试了一个看起来像这样的 FULL OUTER JOIN:

我只从一个匹配的表中获取 NULL,我没有得到另一个表的扩展。在上面的示例中,我基本上只得到第一行和第三行,而不是第二行。

有人可以帮我创建这个查询并告诉我这是如何正确完成的吗?

顺便说一句,我已经有一个看起来非常干净并填充内存表的存储过程,但这不是我想要的。

谢谢。

- 编辑:

这是当前不起作用的完整示例(缺少“某人 2”和“某人 3”。

结果:

我想要的是: