這是我作為自學新手撰寫的一小段 pythonic sqlite 查詢:
cursor.execute(f"""INSERT INTO {mover_allocator[mover_targeter]}
(ID, TITLE, SEASONS_WATCHED, PERSONAL_RATING, GENRE)
VALUES
(NULL, (SELECT TITLE FROM {selected_table} WHERE TITLE = '{title_to_move}'), ?, ?,
(SELECT GENRE FROM {selected_table} WHERE TITLE = '{title_to_move}'))""",
(seasons_watched, series_rating))
series_database.commit()
它有效。但我絕對不喜歡括號中的雙重 SELECT-FROM,所以我嘗試重寫它:
cursor.execute(f"""INSERT INTO {mover_allocator[mover_targeter]}
(ID, TITLE, SEASONS_WATCHED, PERSONAL_RATING, GENRE)
VALUES
(NULL, TITLE, ?, ?, GENRE)
SELECT TITLE, GENRE FROM {selected_table} WHERE TITLE = '{title_to_move}'""",
(seasons_watched, series_rating))
series_database.commit()
現在它成功地沒有了。我已經對復雜的檔案感到有些厭倦了,我想知道:這種方法是否可行?我的意思是,在一個查詢中順序組合 VALUES 和 SELECT-FROM?
更新:在我的情況下{selected_table},只有兩列而不是五{mover_allocator[mover_targeter]}列,換句話說,列不匹配。
uj5u.com熱心網友回復:
您可以通過將您的組合VALUES到SELECT, 而不是相反的方式來完成這項作業:
cursor.execute(f"""INSERT INTO {mover_allocator[mover_targeter]}
(ID, TITLE, SEASONS_WATCHED, PERSONAL_RATING, GENRE)
SELECT NULL, TITLE, ?, ?, GENRE FROM {selected_table} WHERE TITLE = ?""",
(seasons_watched, series_rating, title_to_move))
請注意,它也title_to_move應該是一個引數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/513997.html
上一篇:查找具有指定屬性的實體
下一篇:根據查詢中的值選擇行
