查询返回的结果

时间:2013-05-11 09:31:37

标签: python sql pyqt

我有一个继承自QSqlTableModel的模型,我用数据库中的表填充。有时,我需要对数据进行研究:

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

self.modele.setQuery(self.query)

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

代理在这里研究表格字段上的字符,查询是在这里对几个连接表进行研究。

我的问题是,有时我需要对以前的研究进行研究。那么,您是否知道如何将以前返回的结果设置为新模型?

1 个答案:

答案 0 :(得分:0)

据我了解,

  

我需要对以前的研究进行研究

您的意思是要进行嵌套查询:select嵌套在select中。这可以通过py-sql实现:您第一次在桌面上致电select。假设您将此命名为selectsubselect。现在,您在select上调用subselect以从第一个查询表中选择行。以下是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,))