问题标签 [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 回答
13491 浏览

sql-server-2005 - 从左外连接中选择前一个

伙计们,我有一个查询,基本上选择我们用户使用的最新浏览器。

这是我们的(简化的)表结构

这是我查询用户使用的最新浏览器的方式

HITS_TABLE 是几天前刚刚添加的。

因此,该查询只是我们添加 HITS_TABLE 后访问我们网站的结果用户,并消除了其他用户。

这是示例案例

这是示例结果

但是,我想使用“未知”浏览器添加其他用户。这是我想要的结果

我相信它可以通过 LEFT OUTER JOIN 来实现。但我总是有这个:(我不想要这个结果)

我希望我的问题很清楚。

0 投票
1 回答
6488 浏览

sql - 与自身连接表时如何排除重复行

这是一个示例表来帮助说明我的问题:

我正在尝试将表自身连接起来,以将具有相同 siteid 值的行放在一起。这是我的尝试:

这基本上是我正在寻找的结果,除了第一 2 行。我想消除其中之一。所以,我尝试了以下方法:

这正是我正在寻找的输出。但是,我了解到这不是使用 GROUP BY 的标准方式,并且上述语句在 ORACLE 上失败,给了我一个

一般 SQL 错误。
ORA-00979: 不是 GROUP BY 表达式

任何人都可以就如何获得最后一张表以及与 ORACLE 一起使用的结果提供一些帮助吗?

0 投票
1 回答
595 浏览

sql - 外连接或动态查询,哪个是最好的方法?

我有以下表格(我已经简化了表格中包含的数据)。

RateExtra 仅包含 3 个值,键的 1、2 和 3 以及名称的汽油附加费、管理费和 GST。

这对于目前的目的来说工作正常。正在显示具有匹配记录的值列表,并且仅针对 rate_extra_name 查询 RateExtra。

所以我可能有以下结果:

  • Ratetable1, 1, 汽油附加费
  • Ratetable1, 2, 管理费
  • Ratetable2, 3, 汽油附加费
  • Ratetable4, 4, GST
  • Ratetable6, 5, 汽油附加费

我被要求对此进行修改,以便现在返回的每条记录都包含 RateExtra 表中每个值的记录。如果没有匹配的记录,那么我的 RateTableExtra 表中的数据应该返回为 NULL。所以我的数据应该返回为:

  • Ratetable1, 1, 汽油附加费
  • Ratetable1, 2, 管理费
  • Ratetable1,NULL,GST
  • Ratetable2, 3, 汽油附加费
  • Ratetable2,NULL,管理费
  • Ratetable2,NULL,消费税
  • Ratetable4, NULL, PetrolSurcharge
  • Ratetable4,NULL,管理费
  • Ratetable4, 4, GST
  • Ratetable6, 5, 汽油附加费
  • Ratetable6, NULL, ManagementFee
  • Ratetable6, NULL, GST

我已经尝试过 OUTER 连接,但我假设它们似乎不起作用,因为 RateExtra 数据链接到将返回 null 的 RateTableExtra。我现在正在考虑创建一个动态查询,该查询将获取我的原始结果集,对其进行迭代检查 rate_extra_id,如果它不在结果集中,则在我需要的带有 NULL 数据的结果中附加一个新行。我假设这会起作用,但我有一种感觉,它会成为性能的杀手。

有没有更好的方法来做到这一点?希望有人可以提供帮助,将不胜感激。

0 投票
1 回答
2144 浏览

nhibernate - NHibernate 左外连接子类

我有 2 个实体产品和图像。并非所有图像都是产品图像,图像是文件的子类,下面是我的实体。我需要找到所有与产品无关的图像。我是检索实体的新手,并尝试了多种方法。任何想法或链接将不胜感激。

0 投票
1 回答
621 浏览

linq-to-sql - 影响 UNION 操作的 Linq 和可为空的键关系

这是一个例子:

假设我有 3 张表,国家、人和城市。城市记录具有标识国家/地区的不可为空的外键字段。人员记录有一个可以为的外键字段来标识一个国家 - 他们可能来自一个不再存在的东欧国家。

我想从人员列表和城市列表中创建国家/地区的组合列表:

问题来自最后一行。由于并非所有人员记录都具有匹配的国家/地区记录,因此 LINQ 正在(正确地)创建一个查询,以确保每个无国籍人都有一个填充空的行。使用调试器,这似乎是通过创建一个 entra 虚拟列调用“[test]”来完成的

虽然额外的列 [test] 在代码端被静默删除(结果被标识为 IQueryable),但在 SQL 端它肯定存在,并且当我将它与正常的 Country 选择联合时导致查询被拒绝陈述。

在最后一种情况下,我不想要或不需要额外的虚拟行 - 在我已经包含people.Where(p=>p.CountryID != null).Select(p=>p.Country)并尝试的完整程序中p=>Country != null

但是 Linq 不承认这会阻止空行,因此仍然插入测试列。由于测试列是不可见的,因此我没有明显的方法可以将其从其他报告为 IQueryable 对象的内容中“删除”。最终结果是关于我的 UNION 构造具有不相等的列数的运行时错误。

如何在我的可空关系上强制执行 INNER JOIN,或者通过排除不可见的测试列使联合工作按我的意愿工作?

0 投票
1 回答
1059 浏览

hibernate - 我的 Hibernate 左外连接结果的良好对象结构

我需要进行一个外部连接查询,以检索与某个公司相关联的所有定义以及与它们相关联的任何属性。

我有两个 Hibernate 模型对象:

所以查询最终看起来像:

所以到目前为止一切都很顺利。我遇到的问题是我将返回的数据存储在哪种结构中?Hibernate 返回一个列表,其中 [0] 是 PropertyDefinition(永远不应为空),而 [1] 是可能为空的属性。

我的问题:

  • 传递对象 [] 列表令人讨厌且对 OO 不太友好。
  • 我不能只保留 PropertyDefinition,因为它拥有的属性列表不仅限于公司。
  • 我可以创建一个简单的对象,该对象包含对 PropertyDefinition 的引用和一个可能为 null 的属性,但是必须遍历整个 List 并将每个对象放入这个新对象中是低效的。

有人对更好的查询或更好的映射结构有建议吗?我真的很感激任何帮助。

0 投票
7 回答
500013 浏览

sql - 从多个表中进行 SQL SELECT

如何从customers1 和customers2 获取所有产品,包括他们的客户名称?

结果应该是这样的

0 投票
3 回答
3551 浏览

linq-to-sql - 使用 LinqToSQL 生成 FULL JOIN

我有这个 linq 查询:

生成:

但我想生成:

换句话说,我想为此查询生成完整的外部联接,而不仅仅是离开。

有人知道如何以简单的方式做到这一点吗?

谢谢

0 投票
5 回答
11226 浏览

linq - Linq to entities Left Join

I want to achieve the following in Linq to Entities:

Get all Enquires that have no Application or the Application has a status != 4 (Completed)

Has anyone done this before without using DefaultIfEmpty(), which is not supported by Linq to Entities?

I'm trying to add a filter to an IQueryable query like this:

Thanks Mark

0 投票
1 回答
16852 浏览

hibernate - 可空多对一的休眠默认连接

我在 ProductDfn 类中有这样的休眠映射

请注意,该关系被定义为可选的(并且该列可以为空)。

当做这样的HQL

内部连接用于将 ProductDfn 连接到 ProductType,因为 hibernate 从 select 子句中的隐式连接生成显式 SQL 连接。

但是,当 productType 为 null 时(在数据库中)执行上述操作时,由于内部连接,不会返回任何行。对于这种关系,我希望休眠默认进行外部连接(因为关系是可选的),所以我会为 col2 返回一个“null”,而不是根本没有行。

有谁知道这是否可能?

谢谢。