2013-05-11 69 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,))