2013-05-11 101 views
0

我有一個模型,它繼承自QSqlTableModel,我用數據庫中的表格填充。有時候,我需要以完成對數據的研究:對返回結果的查詢

self.query.prepare(requete) 
self.query.exec_() 

self.modele.setQuery(self.query) 

self.proxy.setSourceModel(self.modele) 
self.tableau.setModel(self.proxy) 

代理是在這裏研究表的字段中的字符,該查詢是這裏實行的幾個連接表進行了研究。

我的問題是,有時我需要對以前的研究進行研究。那麼,您是否會知道如何將之前返回的結果設置爲新模型?

回答

0

據我瞭解,有

我需要實行一個研究在前人研究的

你的意思是你想要做的嵌套查詢:嵌套在select一個select。這是可能的py-sql:你第一次打電話select在你的桌子上。假設你命名爲selectsubselect。現在,您撥打以從第一個查詢表中選擇行。這裏是一個例子from py-sql doc

>>> user_group = Table('user_group') 

    >>> subselect = user_group.select(user_group.user, 
    ...  where=(user_group.active == True)) 

    >>> user = Table('user') 

    >>> tuple(user.select(user.id, where=(user.id.in_(subselect)))) 
    ('SELECT "a"."id" FROM "user" AS "a" WHERE ("a"."id" IN (SELECT "b"."user" 
     FROM "user_group" AS "b" 
     WHERE ("b"."active" = %s)))', (True,)) 

    >>> tuple(subselect.select(subselect.user)) 
    ('SELECT "a"."user" FROM (SELECT "b"."user" 
     FROM "user_group" AS "b" 
     WHERE ("b"."active" = %s)) AS "a"', (True,))