对不起。我是在Python中表达SQL语句的新手。
我正在尝试从之前的查询结果中选择“选择x ..”。
例如,我有第一个查询(sql1):
sql1 = 'select course_id, record_id from Courses ' \
' where ( record_id not in ("TEST", "TEST123")) '
cursor.execute(sql1)
e = cursor.fetachall()
当我尝试不破坏查询时,由于数据类型不同而出现错误。
现在,如何从sql1中选择(这次我必须添加一个数据计算)?
sql2 = ' select course_id, max(record_id) + 1 from ... ? '
答案 0 :(得分:1)
使sql1成为sql2的子查询。例如:
"""select course_id, max(record_id) + 1 from
(select course_id, record_id from Courses
where record_id not in ('TEST', 'TEST123'))"""
答案 1 :(得分:0)
您可以使用视图来存储查询。
CREATE OR REPLACE VIEW v AS
select course_id, record_id from Courses
where ( record_id not in ("TEST", "TEST123"));
select course_id, max(record_id) + 1 from v;
有了这个,你只需要一个Python查询。
sql1 = 'CREATE OR REPLACE VIEW v AS
select course_id, record_id from Courses
where ( record_id not in ("TEST", "TEST123"));
select course_id, max(record_id) + 1 from v;'
cursor.execute(sql1)
e = cursor.fetachall()
有关观看的更多信息:https://dev.mysql.com/doc/refman/5.7/en/create-view.html