Thread: [SQLObject] select distinct value from xyz where condition
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: AlexB <as...@te...> - 2010-11-08 21:55:18
|
Hello there, I've asked a question in stackoverflow about the following issue: http://stackoverflow.com/questions/4120165/how-to-translate-this-to-sqlobject-select-distinct-columnname-where/ So far not many results, I'm hoping to get more info here. I'll update the stackoverflow quesiton in that case. In short, a recap from the above page: """ I have a specific SQL query that I need: select distinct author from blogtable where keyword = "dust"; Multiple authors can post about multiple keywords. The query works on the MySQL database if I use the raw sql query. But I can't seem to understand what I must do to get this correctly working in SQLObject. I see heaps of references to sqlbuilder, but the manual page on that is not very extensive. The examples provided in the google groups also talk as if SQLbuilder is the answer, but again, no specific example (for my problem) that I can understand. Could someone well versed in SQLObject explain to me how I implement the above SQL in SQLObject ? If not possible, can I pass the raw sql in any way via SQLObject to the underlying db ? """ I've been in and out of this group the last few weeks reading and searching. I've found several references to possible solutions to this using SQLBuilder, including a few commands, but I just can't seem to *understand* what is meant by those commands, nor what exactly sqlbuilder is and how to use it. It's becoming very frustrating... IS there a way to do this ? If so, how does SQLBuilder work ? An example would be really nice and much appreciated ! Regards, Alex |
From: Oleg B. <ph...@ph...> - 2010-11-08 22:22:27
|
On Mon, Nov 08, 2010 at 09:53:26PM +0000, AlexB wrote: > I have a specific SQL query that I need: > > select distinct author from blogtable where keyword = "dust"; One cannot select a column using the high-level SQLObject API, one can only select all columns at once (*), and it's almost meaningless to query select distinct * SQLBuilder is the mid-level API. To use SQLBuilder first construct the query: from sqlobject.sqlbuider import Select query = Select([BlogTable.q.author], where=BlogTable.q.keyword=='dust', distinct=True) and then convert the object to SQL query string and execute the string using the low-level API: rows = connection.queryAll(connection.sqlrepr(query)) The result is a list of rows, every row is a tuple of length 1 (the author): for row in rows: author = row[0] print author Oleg. -- Oleg Broytman http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: AlexB <as...@te...> - 2010-11-09 19:41:12
|
Oleg, Thank you for the example and the thorough explanation - it worked first time, and I learned some more ! I'll add the info below to the stackoverflow question as well, citing your name. Regards, Alex. |
From: Oleg B. <ph...@ph...> - 2010-11-09 21:15:41
|
On Tue, Nov 09, 2010 at 07:40:46PM +0000, AlexB wrote: > Oleg, > > Thank you for the example and the thorough explanation - it worked first time, > and I learned some more ! You are welcome! > I'll add the info below to the stackoverflow question as well, citing your name. Thank you! > Regards, Alex. Oleg. -- Oleg Broytman http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |