gpt4 book ai didi

mysql - mysql中3个表的自然连接

转载 作者:行者123 更新时间:2023-11-28 23:19:53 25 4
gpt4 key购买 nike

所以我有 3 个表,movies(包含列 id 和 name),directors(id、first_name、last_name)和 movies_directors(movie_id 和 director_id)。我想合并这 3 个表,因为它们具有相同的值(director_id 和 movie_id),然后投影特定的列。这就是我到目前为止所做的:

select first_name, last_name, name 
from movies natural join directors natural join movies_directors
where movies_directors.movie_id=movies.id and
movies_directors.director_id=directors.id;

但是,最后产生的表是空的!我还尝试过使用 View ,它适用于 2 个表(它返回组合表)但是当涉及到第三个表时,返回的表是空的。

最佳答案

自然连接要求连接中涉及的两个表有一个名称相同的连接列,而您的模式则不是这种情况。使用 INNER JOIN 而不是显式 ON 子句:

SELECT t1.name AS movie_name,
t2.first_name,
t2.last_name,
FROM movies natural t1
INNER JOIN directors t2
ON t1.id = t2.movie_id
INNER JOIN movies_directors t3
ON t2.id = t3.director_id

关于mysql - mysql中3个表的自然连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42195201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com