自然连接不返回空行

时间:2015-02-07 10:18:57

标签: mysql natural-join

我有下表和他们的专栏:

  
      
  1. 包含actor_id(主键),first_name,last_name,last_update作为列的ACTOR
  2.   
  3. FILM_ACTOR包含actor_id(主键),film_id(主键),最后更新为列
  4.   

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

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

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

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

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

对连接列使用内部联接和引用。

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