繁体   English   中英

SqlAlchemy 在结果中添加“字符串”作为列

[英]SqlAlchemy adding "string" as a column in results

candidates = db_session.query(
    Jobs.candidate_id, ## is there a way to eliminate this?
    'Good' ## How do I add this as a column for every person?
    Resumes.resume
).outerjoin(
    (Resumes, Resumes.candidate_id == Jobs.candidate_id),
).outerjoin(
    (Candidate, Candidate.candidate_id == Jobs.candidate_id)

有没有办法可以将Good作为每个结果的第一列添加?

此外,我可以在不破坏outerjoin的情况下从Query中消除Jobs类别吗?

更新 -

can = db_session.query(
    sqlalchemy.sql.expression.literal_column("Good"),
    Jobs.candidate_id

我收到此错误:

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such column: Good 

我正在使用 SQLite。

您的更新非常接近:使用literal_column,但请确保将值放在单引号中。

在你的情况下:

sqlalchemy.sql.expression.literal_column("Good"),

应该:

sqlalchemy.sql.expression.literal_column("'Good'"),

您的整个查询将如下所示:

candidates = db_session.query(
    Jobs.candidate_id, ## is there a way to eliminate this?
    sqlalchemy.sql.expression.literal_column("'Good'").label("optional_column_name"),
    Resumes.resume
).outerjoin(
    (Resumes, Resumes.candidate_id == Jobs.candidate_id),
).outerjoin(
    (Candidate, Candidate.candidate_id == Jobs.candidate_id)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM