我正在使用SQLAlchemy学习SQL-Python,并会对此有所帮助。
我有3张桌子,
表1(演员):nconst(主键),名称
表2(电影):tconst(主键),标题
表3(交汇表):nconst(来自Actors表),tconst(来自Movies表)
我正在尝试获得10行特定电影的演员。因此,我试图在Junction表上使用Actors(使用nconst),然后在Movies表上进行另一个内连接。
在SQL中,这意味着
FROM principals INNER JOIN actors
ON principals.nconst=actors.nconst INNER JOIN
movies ON principals.tconst=movies.tconst
在SQLAlchemy中,我当前的代码是:
mt = list(session.query(Movies, Principals, Actors).select_from(
join(Movies, Principals, Movies.tconst == Principals.tconst)
.join(Actors, Principals, Actors.nconst == Principals.nconst
).with_entities(
Movies.title, # Select clause
))
或者,我正在尝试
from sqlalchemy.orm import join
mv = list(session.query(Actors).select_from(
join(Movies, Principals, Actors, Movies.tconst == Principals.tconst,
Actors.nconst == Principals.nconst) # Join clause
).with_entities(
Actors.name, # Select clause
Movies.title,
))
mv
我得到的错误是属性错误,“Actor类型对象'Actors'没有属性'_from_objects'
对此表示赞赏。非常感谢你。