我有下表及其列:
- ACTOR containing actor_id(primary key), first_name, last_name, last_update as columns
- 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/