0

我有下表及其列:

  1. 包含 actor_id(primary key)、first_name、last_name、last_update 作为列的 ACTOR
  2. FILM_ACTOR 包含 actor_id(primary Key)、film_id(primary key)、最后更新为列

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

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

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

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

4

2 回答 2

0

在 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;
于 2015-02-07T10:26:54.710 回答
0

使用内连接和连接列的引用。

select actor_id, first_name, film_id from actor inner join film_actor using (actor_id)

于 2015-02-07T10:33:02.030 回答