满足条件时从另一表插入外键ID报错:未知列director_ph如何解决?
问题分析与解决
你的错误根源有两个:
- 错误使用
INSERT语句:你已经向movie_list插入了包含director_ph的记录,现在要做的是更新已有记录的director_id,而非插入新的director_id行。 WHERE子句中的director_ph属于movie_list表,但你的SELECT仅从directors表查询,数据库无法识别这个字段,因此报错。
正确的SQL语句
使用UPDATE JOIN关联两张表,匹配导演名称后更新director_id:
UPDATE movie_list JOIN directors ON movie_list.director_ph = directors.director_name SET movie_list.director_id = directors.id;
补充说明
- 这条语句会遍历
movie_list的所有记录,通过director_ph与directors表的director_name匹配,将对应的导演ID赋值给movie_list.director_id。 - 执行完更新后,记得提交事务:
conn.commit()
内容的提问来源于stack exchange,提问作者Matheus Leopoldo
相关产品推荐
相关产品推荐

