我正在使用MySQL工作台6.0。即使列名相同且具有单个匹配列,自然连接查询也会返回零结果
我有如下表:
演员,film_Actors
都只能有一个名称为actor_id公共列,并具有相同的数据类型。
样本数据:
select * from actor;得出:
,然后从FILM_ACTOR *;得出:
但是,当我跑了自然连接查询:
选择actor_id,FIRST_NAME,film_id从演员自然连接FILM_ACTOR;
返回零行。为什么?
我正在使用MySQL工作台6.0。即使列名相同且具有单个匹配列,自然连接查询也会返回零结果
我有如下表:
演员,film_Actors
都只能有一个名称为actor_id公共列,并具有相同的数据类型。
样本数据:
select * from actor;得出:
,然后从FILM_ACTOR *;得出:
但是,当我跑了自然连接查询:
选择actor_id,FIRST_NAME,film_id从演员自然连接FILM_ACTOR;
返回零行。为什么?
A natural join
将使用两个表中存在的所有列进行联接。
在你的情况下,这包括last_update
,这可能不是你想要的。
因为这样的原因,不要使用natural join
通常是个好主意。
所以你想要一个查询显示在同一行中演员姓名的电影名称。我会在这种情况下使用内连接:
SELECT a.actor_id, a.first_name, f.film_id FROM actor a INNER JOIN film_actor f on a.actor_ID=f.actor_id