mysql - 自然连接不返回空白行

标签 mysql natural-join

我有下表及其列:

  1. ACTOR containing actor_id(primary key), first_name, last_name, last_update as columns
  2. FILM_ACTOR containing actor_id(primary Key), film_id(primary key), last update as columns

两个表中的 Actor_id 具有相同的数据类型和相等的值。

我在 SQL 工作台中编写了以下 MySQL 查询:

select actor_id, first_name, film_id from actor natural join film_actor;

但它返回零行或空白行。为什么?

最佳答案

在 MySQL 中,NATURAL JOIN 是一种执行与 INNER 或 LEFT JOIN 相同任务的连接,其中 ON 或 USING 子句引用要连接的表共有的所有列。

因此,在您的情况下,它将尝试加入您可能不想要的 actor_id 以及 last_update 列。我建议您使用 INNER JOIN 如下所示:

SELECT actor_id, first_name, film_id 
FROM actor a INNER JOIN film_actor f 
ON a.actor_id = f.actor_id;

关于mysql - 自然连接不返回空白行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28380966/

相关文章:

mysql自然连接不工作

php - 如何在数组的集合上实现子集合?

python - 原始 mysql 查询在测试时失败,但使用 django 可以正确运行

MySQL 查询优化器占用磁盘访问时间

sql - PostgreSQL Natural Join 不适用于两个相关表

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

mysql - 如何避免添加重复的外键约束

mysql - 编写迁移以更改特定列中的特定功能

mysql - 自然连接在 mysql 中返回零行

mysql - 不确定我是否正确地执行了 sql 查询