问题标签 [natural-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 投票
4 回答
4009 浏览

oracle - Oracle 自然连接和计数(1)

有谁知道为什么在 Oracle 11g 中,当您执行具有多个自然连接的 Count(1) 时,它会执行笛卡尔连接并抛出计数?

这会拉回 300 万行

像 36000 行一样拉回,这是正确的数量。

我只是错过了什么吗?

这是我用来获得此结果的表格。

我应该提到这在 Oracle 9i 中不是问题,但是当我们切换到 11g 时,它就成了问题。

0 投票
2 回答
3491 浏览

sql - SQL 自然连接 POSTGRES

我不确定我需要什么样的连接,因为我不熟悉尝试以这种方式重叠数据,或者它是否可行。

我有两个表,它们都共享一组相似的数据,并且都与第三个父表相关Room_id.

我有一个名为 Room_rates 的表,它存储每个房间的平均价格(room_id)

还有一个名为 Availables 的表,其中包含特定日期的费率

目前我正在使用两个单独的搜索结果,Availables特定日期范围的当前数据存在或不存在。如果不是,我使用仅使用Room_rate平均值的备份查询。

我想在有可用价格的地方使用 Availables,但如果价格不可用或可能根本没有记录,我想以某种方式加入 Room_rates 来填补空白。

我怎么能做到这一点?

0 投票
3 回答
835 浏览

sql - 用编程语言编写 SQL 时,使用自然连接或隐式列名不是一个好习惯吗?

当我们使用自然连接时,当两个表具有相同的列名时,我们正在连接表。但是,如果我们用 PHP 编写它,然后 DBA 向两个表添加更多字段,那么自然连接会中断吗?

插入也是如此,如果我们做一个

那么当 DBA 向表中添加一些字段(例如第 2 列或第 3 列)时,它将破坏代码并污染表。因此,当 SQL 语句用编程语言编写并存储在大型项目的文件中时,最好拼出列名。

0 投票
4 回答
34936 浏览

join - 无损连接属性

有人可以向我解释一下关系模式中的无损连接属性是什么意思吗?

是否能够在关系分解期间保持信息/数据的语义,同时进行规范化?

0 投票
6 回答
3496 浏览

sql - NATURAL (JOIN) 在生产环境中被认为是有害的吗?

我正在阅读有关 SQL 连接的 NATURAL 速记形式的信息,我看到了一些陷阱:

  • 它只是自动使用所有相同的命名列对(使用 USING 指定显式列列表)
  • 如果添加了一些新列,则连接输出也可能“意外”更改,这在复杂结构中可能不那么明显(即使您知道 NATURAL 是如何工作的)
0 投票
4 回答
3196 浏览

sql - 自然连接——关系理论和 SQL

这个问题来自我对 CJ Date's SQL and Relational Theory: How to Write Accurate SQL Code and looking up about joins on the internet(其中包括在 NATURAL JOINs 上遇到多个帖子(以及关于 SQL Server 缺乏对它的支持)的阅读)

所以这是我的问题...

一方面,在关系理论中,自然连接是唯一应该发生的连接(或者至少是高度优选的)。

另一方面,在 SQL 中,建议不要使用 NATURAL JOIN 而是使用替代方法(例如带限制的内部连接)。

是这些的和解:

  • 自然连接在真正的 RDBMS 中工作。然而,SQL 无法完全再现关系模型,而且流行的 SQL DBMS 都不是真正的 RDBMS。

和/或

  • 好的/更好的表设计应该消除/最小化自然连接产生的问题。

?

0 投票
4 回答
867 浏览

sql - 大表上的自然连接

我在两张大桌子上执行一个简单的自然连接。

  • 多边形包含 68,000 行 (45 MB)
  • roadhydro 包含大约 200 万行(210 MB)。

这是否意味着数据库引擎在内部执行自然连接时会生成 68,000*200 万行的数据集?如果是这样,那么所需的内存量必须是 45*210 MB,这比我的系统只有 1.5 GB 大得多。

当我执行此查询时,5 分钟后我的系统崩溃(突然关闭)。它不能处理数据库上 250 MB 的数据吗?那么数据库有什么用呢?

似乎我的许多朋友都感到困惑,因为我在上面的问题中提到了“自然加入”这个词。我使用的真正空间查询是:

其中 polygons & roadhydro 表每个都有两个字段: OID , the_geom 。显然,它是两个表的叉积,而不是某个公共键上的自然连接。

当我执行上述查询时,我监控主内存消耗。它什么也没发生。没有任何内存消耗,我也没有得到任何输出,但 CPU 使用率几乎是 100%。似乎数据库根本没有进行任何计算。但是,如果我从查询中删除 where 子句,主内存消耗逐渐变得过高(5-6 分钟后)导致系统崩溃和机器突然关闭。这就是我正在经历的。删除 where 子句有什么特别之处?为什么 postgres 无法执行查询!对这种行为感到惊讶。

0 投票
2 回答
1502 浏览

sql - SQL 查询问题 - 自然连接和表命名

我在查询我的数据库类时遇到了一些困难。给定以下架构:

  • 客户 ( customerid, first_name, last_name, address, city, state, phone, status)
  • 分支机构 ( branchno, address, city, state, phone, manager_name)
  • 员工 ( empno, firstname, lastname, address, city, state, phone, emergency_contact, title, managerno)
  • 房间 ( roomno, branchno, price, bed_size)
  • 预订 ( roomno, branchno, customerid, checkin_date, checkout_date, empno)

我想找到租了最贵房间的客户。我试了一下这个查询......

问题来自我想重命名表的方式。我想使用预订和房间的自然连接作为笛卡尔积的组成部分......我该怎么做?

非常感谢。

0 投票
11 回答
306098 浏览

sql - 自然连接和内连接的区别

自然连接和内部连接有什么区别?

0 投票
2 回答
64 浏览

mysql - 我的(不复杂的)MySQL-Query 到底有什么问题?

我可能双眼都瞎了,但是迭代了很多版本并尝试...删除了连字符和 AS 语句...

我总是以 MySql5.1 服务器的解析错误 1064 告终。我真的相信这是有效的,SQL 答案:

有什么建议吗?

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的“ON (corporations.id=corporations_dpa_articles.corporation_id) NATURAL JOIN dpa_a”附近使用正确的语法

非常感谢您提前。