从先前的数据结果中选择数据

时间:2017-08-28 20:26:10

标签: python mysql

对不起。我是在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 ... ? '       

2 个答案:

答案 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