我有下表和他们的专栏:
- 包含actor_id(主键),first_name,last_name,last_update作为列的ACTOR
- FILM_ACTOR包含actor_id(主键),film_id(主键),最后更新为列
醇>
两个表中的Actor_id具有相同的数据类型和相等的值。
我在SQL工作台中编写了以下MySQL查询:
select actor_id, first_name, film_id from actor natural join film_actor;
但它返回零或空行。为什么呢?
答案 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)