2017-08-28 30 views
0

對不起。我是在Python中表達SQL語句的新手。從以前的數據結果中選擇數據

我想從前面的查詢結果中選擇「Select 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

'選擇COURSE_ID,MAX(RECORD_ID)+ 1從(選擇COURSE_ID ... ...從哪裏)作爲some_table_alias_name' –

回答

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'))""" 
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

+0

這是Python的?它看起來像微軟的腳本查看 –

+0

@KingJava它的MySQL – kenfire