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

mysql - 自然连接有效,但不适用于所有值

我不明白发生了什么...
我使用两个不返回相同内容的 sql 查询...
这个:

我得到 10 行

这另一个:

我得到 8 行

NATURAL JOIN没有返回 2 行...我查找缺少的行,它们与列的值相同attribute1...

这对我来说是不可能的。如果有人有答案,我可以睡得更好^^

最好的问候马克斯

0 投票
2 回答
2546 浏览

mysql - 了解 SQL 中的自然联接

所以我对 SQL 相当陌生,目前我坚持使用 Natural Join 的概念。

目前,我了解 Natural Join 运算符通过匹配具有相同名称的所有列并丢弃重复列和丢弃​​不匹配的行来连接表。

所以最近我遇到了一个问题,真的很基本,但是我无法理解它。

所以有 2 个关系 R(A,B,C) 和 S(A,B,D)

以下查询将产生多少行?

从 R 自然连接中选择 *

因此,我立即看到两列“匹配”它们是 A 和 B。通过使用 Natural Join,它会同时考虑 A 和 B 还是只考虑 A,因此会丢弃哪些信息。

答案是 2 行。有人可以解释一下获得 2 行的方法吗?

谢谢!

2行是否有任何机会

如果是这样,我可以删除这个问题

0 投票
2 回答
3155 浏览

relational-algebra - 关系代数:自然连接与笛卡尔积具有相同的结果

我试图了解在两个关系 R 和 S 之间执行自然连接的结果是什么,它们没有共同的属性。

通过遵循以下定义,我认为答案可能是一个空集:
自然连接定义。
我的思路是因为不满足“选择”符号中的条件,所有属性的投影都不会发生。
当我问我的讲师这个问题时,他说输出将与在 R 和 S 之间进行笛卡尔积相同。
我似乎不明白为什么,希望有任何帮助)

0 投票
2 回答
629 浏览

relational-database - 关系代数中的自然连接 - 数据库理论

如果我删除了黄色部分,我还能想出正确的答案吗?它甚至是必要的吗?

图片

0 投票
2 回答
3554 浏览

sql - 从自然连接中排除列

我目前有以下 PostgreSQL 数据库(图片仅包含基本组件): DBVis 图像

基本上:每个 TX 都有一些 TXIN 和一些 TXOUT,每个 TXIN 由一个 TXOUT 环(门罗币交易)组成

如果我将ring表与txin我使用的表连接起来select * from ring natural join txin,它inid用于连接。和相同ringtxout除了它加入outid.

两者txintxout也可以通过自然连接进行连接tx以获得合理的输出。

唯一(预期)不起作用的是:

因为它然后加入ring(inid) = txin(inid)ring(outid) = txout(outid)(这是需要的)但也是txin(txid) = txout(txid)不希望的。

我有一些想法如何解决这个问题:

  1. 使用显式连接(在我看来使一些查询非常麻烦),例如上面的内容是: select * from txout join ring using (outid) join txin using (inid);

  2. 重命名 txin 或 txout 中的两个 txid 列之一,并放弃与 tx 的自然连接

  3. 使用忽略这些操作的 txid 的 txin/txout 视图

还有另一种(更好的)方法吗?如果不是 - 哪种方法是最佳实践?我的数据库设计是否缺乏,整个问题可以以某种方式规避?

0 投票
2 回答
956 浏览

mysql - MySQL中的自然连接与匹配的列

如果我有两个具有主键连接的表,即两个列具有相同的名称和相同的数据,然后我有一个列名时间戳,这两个表的名称相同,但根据它们的表不同的数据。我还能使用 NATURAL JOIN 吗?或者考虑到我需要从两个表中使用 SELECT * 而不使用别名,是否有解决方法?

0 投票
4 回答
234 浏览

database - 连接这 3 个表以删除虚假行的 SQL 查询 - OWNER、TYPE、PERSON

我在加入这 3 张桌子时遇到了一些麻烦。

我想对所有 3 个表进行连接,所以我的输出是:

我基本上是在演示 5NF 如何删除虚假行。当我加入表的任意 2 个组合时,我会得到额外的数据(这是我所期望的)。

不过,我在加入第三张桌子时遇到了困难,我从来不需要加入所有 3 张桌子。

到目前为止,这是我的查询:

我的输出返回 8 行,有些是重复的。我尝试过使用查询,但它只会进一步增加行数。

我的查询基于我拥有的 ORACLE APEX 教程书,但它没有加入像我一样布局的 3 个表。

如何加入这 3 个表以删除加入 2 个表后得到的虚假行?

0 投票
1 回答
523 浏览

sqlite - Sqlite 左连接复合键

为静态 ORM 展开 SQLite 数据透视查询,问题是它需要空值来表示缺失值。

我需要结果包含一个空行,以便静态 ORM 正确制表。在我看来,这应该意味着左加入:

由于 Tim 暑期考试缺席,student_id 没有一行 | 表等级中的 data_id PK_pair(2,1)。

查询当前返回:

结果中缺少此行:

0 投票
1 回答
105 浏览

mysql - SQL:不考虑大小写,查找包含短语的行

这是我正在使用的数据库:https ://drive.google.com/file/d/1ArJekOQpal0JFIr1h3NXYcFVngnCNUxg/view?usp=sharing

按部门名称的字母顺序列出 CS 部门的部门编号和学者总数。CS部门是其部门名称包含大写或小写字母“计算机......科学”或“计算......科学”的部门。您必须使用 NATURAL JOIN 运算符。

我对这个问题的尝试:

它一直没有价值,我不确定我做错了什么。

谢谢

编辑:

感谢大家。这就是我现在正在使用的(虽然效率低下):

0 投票
1 回答
698 浏览

relational-algebra - 代数中公共属性的自然连接和简单连接的区别

我有一个困惑。假设有两个与共同属性 A 的关系。现在是 (R natural join S)=(R join S where join condition A=A)?自然连接返回一个公共列 A 由于集合论中定义的关系代数,简单连接是否返回两个具有相同名称 AA 或 1 个公共列 A 的列?