我目前正在通过其官方网站自学SQLAlchemy ORM。我在其网站上看到以下代码:
session.query(BlogPost).filter(BlogPost.author==wendy).filter(BlogPost.keywords.any(keyword='firstpost')).all()
执行后将返回以下SQL语句:
SELECT posts.id AS posts_id, posts.user_id AS posts_user_id,
posts.headline AS posts_headline, posts.body AS posts_body
FROM posts
WHERE ? = posts.user_id AND (EXISTS (SELECT 1
FROM post_keywords, keywords
WHERE posts.id = post_keywords.post_id
AND keywords.id = post_keywords.keyword_id
AND keywords.keyword = ?))
(2, 'firstpost')
我很困惑为什么是“?”在WHERE子句之后。应该不是WHERE posts.user_id = ?
而不是WHERE ? = posts.user_id
吗?
我曾尝试在网上搜索,但找不到任何内容。感谢有人可以帮我解决这个问题。
谢谢。