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

mysql - SQL Natural Join Dilemma re Order, Customer & Salesman 表

我被问到以下问题:

编写一个 SQL 语句,对表 salesman、customer 和 orders 进行连接,使每个表的同一列出现一次,并且只出现关系行。

我执行了以下查询:

但是,我没想到会出现以下结果:

在此处输入图像描述

在此处输入图像描述

我的疑问在于第 2 步。

为什么我没有得到 salesman_id 5002、5003 和 5007 的行?

我知道自然连接使用公共列来完成行。

这里所有的 Salesman_ids 都出现在第 1 步的结果中。

为什么最终结果不等于第 1 步生成的表,其中添加了来自推销员的非重复列?

0 投票
1 回答
47 浏览

mysql - 需要明确 SQL 中的 JOIN 概念

所以我们在 SQL 中遇到的各种类型的连接是:

1.加入

2.自然加入

3.内连接

4.外连接(左、右、全)

5.交叉连接

我需要清楚地了解 JOIN、NATURAL JOIN 和 CROSS JOIN 之间的区别

在 w3schools.com,我使用了 JOIN 和 NATURAL JOIN 查询并得到以下结果

1.查询JOIN。

JOIN 查询的输出(无法看到邮政编码和国家/地区列,但它们在那里)

2.查询自然连接。

自然连接的输出

我是一个初学者,我不清楚 JOIN 和 NATURAL JOIN 关键字的概念,因为互联网上的资料不够,或者如果有的话,我不清楚这两个关键字之间的混淆。

我不明白为什么 2 个关键字获取的记录数量如此不同。请深入解释这里发生了什么。提前致谢。

0 投票
1 回答
875 浏览

php - LARAVEL MYSQL如何使用自然JOIN

我需要在集合中返回以进行分页,但我只能在数组中返回,因为查询使用自然 JOIN。我如何使用 Laravel 集合进行此查询:

SELECT mensagens.* FROM mensagens NATURAL JOIN (SELECT id_emissor, MAX(created_at) created_at FROM mensagens WHERE id_receptor = ".$user_id." GROUP BY id_emissor) t

我用过这段代码:

$mensagem = \DB::select(DB::raw("SELECT mensagens.* FROM mensagens NATURAL JOIN (SELECT id_emissor, MAX(created_at) created_at FROM mensagens WHERE id_receptor = ".$user_id." GROUP BY id_emissor) t") );

0 投票
3 回答
1210 浏览

mysql - naural join 给出了两个关系的笛卡尔积

我有两个关系,emp(id,name)并且emp2(name,city,salary)有价值观:

在此处输入图像描述

和关系 emp2 值: 在此处输入图像描述

如您所见,当我在它们之间运行自然连接时,我得到了他们的笛卡尔积。但是为什么,因为它们有一个共同的属性(name)?

0 投票
1 回答
1847 浏览

sql - PostgreSQL 自然连接不适用于两个相关表

我有两个表的以下设计,我无法使用 NATURAL JOIN 来测试引用完整性。它适用于 INNER JOIN,但不适用于 NATURAL JOIN :

表 1. 项目

表 2. 许可方案

查询 1. 不工作的 NATURAL JOIN 查询(​​根本不返回任何记录)

查询 2. INNER JOIN

使用 INNER JOIN 查询,它返回所需的结果集。但是,当使用 NATURAL JOIN 时,它根本不返回任何记录。

0 投票
3 回答
1597 浏览

sql - 自然连接必须在共享主键上吗?

假设我执行 A 自然连接 B,其中:

A 的架构是:(aID),其中 (aID) 是主键。
B 的架构是:(aID,bID),其中 (aID,bID) 是复合主键。

在这种情况下执行自然连接工作吗?或者 A 是否需要同时拥有 aID 和 bID 才能正常工作?

0 投票
1 回答
47 浏览

mysql - 自然加入mysql 5.6

我想看看一个国家赢得了多少奖牌。所以我决定合并表 www_result 和 www_country。它们具有共同的 country_id 属性。到目前为止,这是我的代码,但出现语法错误,我似乎找不到原因。

先感谢您

0 投票
3 回答
318 浏览

mysql - 在加入期间比较空值

我读到 null 不能与 null 进行比较,结果总是错误的。

在下面的链接中,我可以比较 2 个空值并返回行。

http://sqlfiddle.com/#!9/33f25/1/0

那么关于空值比较的正确说法是什么?

0 投票
1 回答
479 浏览

sql - 自然连接两个具有不同列数且正常工作的表

我试图理解为什么自然连接在我的两个表上的 sql 中无法正常工作:

第二个表是使用几个交叉连接和不同表创建的表。这种自然连接的结果不应该是:

但相反,它输出的只是第一个表。为什么会这样?确切的代码是:

0 投票
2 回答
312 浏览

sql - SQL/PSQL 交叉连接同一张表后在where子句中引用列名

我试图弄清楚当您与自身交叉连接表时如何从交叉连接中引用某些列。整个交叉连接表也被赋予了一个别名,这就是为什么我无法访问列名的原因,因为它也与另一个子查询自然连接。这是代码:

问题在于尝试比较 t1.sid 和 s3.sid 的“where”子句,因为 q0.sid 不明确。如何从交叉连接访问这些列?