如何将其转换为SQLObject:SELECT DISTINCT columnname WHERE
我一直在看sqlobject和sqlbuilder的文档以及论坛,但我就是搞不懂里面的信息。
我有一个特定的SQL查询需要用到:
select distinct author from blogtable where keyword = "dust";
多个作者可以在多个主题上发帖。
这个查询在MySQL数据库中用原始的SQL查询可以正常工作。但我就是不明白该怎么在SQLObject中正确实现它。
我看到很多关于sqlbuilder的参考资料,但手册页面并不是很详细。谷歌小组里提供的例子也好像在说sqlbuilder是解决方案,但同样没有我能理解的具体例子(针对我的问题)。
有没有对SQLObject很熟悉的人能告诉我,怎么把上面的SQL在SQLObject中实现?如果不行的话,我能不能通过SQLObject以某种方式把原始SQL传递给底层数据库?
1 个回答
1
我对SQLObject的经验不多,但从文档中我推测它应该是这样的:
class Blog(SQLObject):
class sqlmeta:
table = 'blogtable'
author = StringCol()
keyword = StringCol()
Blog.select(Blog.q.keyword=='dust', distinct=True)
版本 2
select = Select(
[Blog.q.author],
Blog.q.keyword=='dust',
distinct=True,
)
sql = connection.sqlrepr(select)
for author in connection.queryAll(sql):
print author