python - 如何使用子查询来设置或更新 SQLALchemy 中的值?
问题描述
以下查询将存在于 Python 函数中,并使用 player_name、year_born、player_status 和它正在更新的玩家 ID 的参数调用。是否可以使用 SQLAlchemy ORM 生成此查询?
UPDATE player
SET father_id = (
SELECT id
FROM player
WHERE player_name = 'Player A'
AND year_born = 1980
AND player_status = 'Retired' )
WHERE id = 192734
我发现一些资源表明您需要创建一个子查询,我在下面做了...
player_id = db.session.query(Player.id).filter(
Player.player_name == 'Player A',
Player.year_born == 1980,
Player.player_status == 'Retired').subquery()
但我不确定如何生成其余的查询。我想做的是...
q = db.session.query(Player).filter(Player.id == 192734).update(
{Player.father_id: subquery.c.id})
...但这会产生以下错误:sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) missing FROM-clause entry for table "anon_1"
我相信这对于有经验的人来说很容易......谢谢!
解决方案
推荐阅读
- cloudkit - 错误 CloudKit 仪表板 - 加载环境状态时出现问题
- javascript - 将自定义标记放在 markerclusterer
- camera - 如何在 aframe 中的 gltf 中使用内部摄像头?
- javascript - 显示页面时如何激活菜单按钮?
- arrays - 我想使用 html 中的用户输入字段中的文本在 javascript 中构建一个数组,并让它出现在带有 .push 的 ap 标记中。如何?
- next.js - 为每个用户的不同项目添加条带订阅
- python - 在列表中查找连续月份
- docker - 创建大量容器时,docker containerwait api 是否存在错误?
- javascript - 将点击事件放在html按钮或父组件上更好吗?
- vue.js - Vue 路由器没有路由到我的页面 - 它返回无法获取 /home