问题标签 [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 投票
1 回答
1102 浏览

linq - 加入集合的 LINQ 更新

如何使用 LINQ 从第二个列表中的对象更新一个列表中的对象?我的问题与加入期间的 LINQ 行内属性更新非常相似,只是在我的情况下,第二个列表小于父列表。换句话说,我想更新那些在第二个集合中具有相应更新的主集合成员。否则我希望主对象保持不变。上面引用的文章中的技术似乎导致了两个集合的内部连接。

谢谢

0 投票
1 回答
1698 浏览

mysql - 高效的 MySQL 查询以查找 A 中与 B 中不匹配的条目

我有几个表(产品和供应商),想找出哪些项目不再列在供应商表中。

表 uc_products 有产品。表 uc_supplier_csv 有供应商库存。uc_products.model 加入 uc_suppliers.sku。

尝试识别产品表中未在供应商表中引用的库存时,我看到很长的查询。我只想提取匹配的条目的nidsid IS NULL只是为了让我可以确定哪些项目没有供应商。

对于下面的第一个查询,数据库服务器(4GB 内存/2x 2.4GHz 英特尔)需要一个小时才能获得结果(507 行)。我没有等待第二个查询完成。

我怎样才能使这个查询更优化?是不是因为字符集不匹配?

我在想以下将是最有效的 SQL 使用:

对于此查询,我得到以下 EXPLAIN 结果:

我会认为键 idx_sku 和 idx_model 在这里使用是有效的,但它们不是。那是因为表的默认字符集不匹配吗?一个是 UTF-8,一个是 latin1。

我也考虑过这种形式:

EXPLAIN 显示该查询的以下结果:

就这样我不会错过任何东西,这里有一些更令人兴奋的细节:表格大小和统计数据,以及表格结构:)

编辑:为下面来自 Martin 的几个建议查询添加查询计划:

0 投票
2 回答
421 浏览

linq - 亚音速外连接

SubSonic 3 中的 Outer Join 语句似乎有一个错误,或者这只是我的无知,但以下废话:

和:

0 投票
6 回答
274 浏览

sql - 是否可以限制外连接的结果?

我有一个场景,我需要跨三个表进行连接。

如果我想找到所有具有特征 A 或特征 B 的用户(在一个简单的 sql 中),我想我被卡住了。

如果我进行常规加入,则没有特征 A 的人不会出现在结果集中以查看他们是否具有特征 B(反之亦然)。但是,如果我从表 1 到表 2 和表 3 进行外部联接,我将获得表 1 中的所有行,而不管 where 子句的其余部分指定了对表 2 或表 3 的要求。

在你想出多个 sql 和临时表等等之前,这个程序要复杂得多,这只是简单的例子。它根据许多外部因素动态创建 sql,所以我试图让它在一个 sql 中工作。我希望有 in 或 exists 的组合会起作用,但我希望一些简单的事情。但基本上外连接总是会产生表 1 中的所有结果,是吗?

0 投票
7 回答
6209 浏览

sql - 比较内连接和外连接 SQL 语句

内连接和外连接有什么区别?这两种连接的确切含义是什么?

0 投票
1 回答
7766 浏览

java - 在 HQL 查询中使用外连接

我正在尝试使用 HQL 和OUTER JOINs 构建查询,但无法正常工作。考虑以下映射

现在我想获取所有父母的列表和父母的孩子的数量。假设我有一个有两个孩子的父母和一个根本没有孩子的父母。我希望输出像

使用纯 SQL 根本不是问题,我会得到这个输出做类似的事情

但是,使用 HQL 似乎是不可能的,因为在使用 a 时需要一条从 Parent 到 Child的路径OUTER JOIN,而我显然没有(也不想添加)。

有什么想法可以让查询使用 HQL 工作,还是真的 - 我不敢相信 - 缺少休眠功能?

0 投票
4 回答
199 浏览

sql - 将行从一个表插入到另一个表中,哪个 sql 更有效(外连接 vs 顺序扫描)

我需要将表 B 中的行复制到表 A。要求是仅插入 A 中尚不存在的行。

我的问题是,以下两种中哪一种更有效:

一种)

二)

我假设答案取决于桌子的大小。但我想知道在使用一种方法而不是另一种方法方面是否存在明显的问题。

为了减少模糊性,假设表 B 的行数少于 50K,表 A 的大小始终等于或大于表 B 的 1-5 倍。

如果有人有其他更有效的方法来做到这一点,请告诉。

0 投票
4 回答
233 浏览

sql - 这可以用外连接写吗

要求是将表 B 中的行复制到表 A 中。只有 id 不存在的行需要复制:

现在,我试图用一个外连接来比较解释路径,但我不能写这个(至少有效)。

请注意,用 ^ 突出显示的 sql 使这很棘手。

0 投票
3 回答
326 浏览

sql - 包含 IN 语句的 OUTER JOIN 的索引用法

  • 表 b 的索引为:(user, key)

数据库仅在 :userlist 参数包含单个值时使用索引。当 :users 包含多个值(内部扩展为多个 OR 语句?)时,不使用索引并执行(b)表扫描。

为什么提供多个 :userlist 值时数据库不使用索引?

有谁知道这个查询的更优化版本?

0 投票
3 回答
659 浏览

join - 链接到多行的左连接只返回一个

我正在尝试加入两个表(称它们为 table1 和 table2),但每次匹配只返回 1 个条目。在 table2 中,有一个名为“current”的列,它可以是“y”、“n”或“null”。我已经离开加入了这两个表,并放置了一个 where 子句来让我得到 'y' 和 'null' 实例,这些很容易。我需要帮助来获取加入仅具有“n”的行以返回“none”或“null”的一个实例的行。这是一个例子

表 1 ID
1
2
3

表2
ID | 表1ID | 当前
1 | 1 | 是
2 | 2 | 空
3 | 3 | 4
| 3 | 5
| 3 | n

我当前的查询在 table1.ID=table2.table1ID 上加入,然后有一个 where 子句(其中 table2.current = 'y' 或 table2.current = 'null'),但是当没有 'y' 和该值不是“空”。

有人能想出一个像我一样加入表的查询,但像这样从 table1 中获取所有 3 条记录吗?

查询返回

身份证 | 表2ID | 当前
1 | 1 | 是
2 | 空 | 空
3 | 3 | 空或无