Sqlite
如何自動重命名來自同一個表連接的列?
當我加入兩個表以避免衝突時,我使用列別名。但是如果有很多列,這很容易出錯。此外,一些 ORMS 要求對列名使用硬編碼或動態前綴。是否有自動重命名列的方式,使 T22 中的所有列都以“c_t22_”開頭,而 T23 中的所有列都以“c_t23_”開頭?
select T1.id, T1.p1, T21.name as p1_name, T1.p2, T22.name as p2_name, T1.p3, T23.name as p3_name from T1 join T2 as T21 on T1.p1 = T21.id, join T2 as T22 on T1.p2 = T22.id, join T2 as T23 on T1.p3 = T23.id
SQLite 被設計為一個小型嵌入式數據庫,可以從“真正的”程式語言訪問,因此它沒有內置的動態 SQL 機制。
您必須從其他程式語言內部構造 SQL 查詢;像這樣的東西:
cols = [] for tab in tables: for col in columns: cols.append("c_{}_{}".format(tab, col)) sql = "SELECT " + ", ".join(cols) + " ..." execute(sql)