or {{=response.toolbar()}} to see all the queries per request and their 
timing...

BTW somebody should really help us improve the css of the web2py toolbar. 

On Friday, 5 October 2012 16:20:25 UTC-5, Cliff Kachinske wrote:
>
> If you want to see what the dal did with the query, do 'print db._lastsql' 
> in your controller.
>
> On Friday, October 5, 2012 3:13:54 PM UTC-4, curiouslearn wrote:
>>
>> Thanks a lot. This is helpful. 
>>
>>
>> On Fri, Oct 5, 2012 at 12:52 PM, Massimo Di Pierro 
>> <[email protected]> wrote: 
>> > I would do: 
>> > 
>> > rows = 
>> > 
>> db(db.teams.experimentid.belongs(db(db.listofexperiments.experimentname=='ug2').select(
>> db.listofexperiments.id))).select(db.teams.teamname) 
>> > 
>> > or with a shorter syntax: 
>> > 
>> > rows = 
>> > 
>> db(db.teams.experimentid.belongs(db.listofexperiments.experimentname=='ug2')).select(db.teams.teamname)
>>  
>>
>> > 
>> > 
>> > On Friday, 5 October 2012 11:32:44 UTC-5, curiouslearn wrote: 
>> >> 
>> >> Hello, 
>> >> 
>> >> I want to implement the following SQL query: 
>> >> 
>> >> select teamname from teams where experimentid = (select id from 
>> >> listofexperiments where experimentname = 'ug2'); 
>> >> 
>> >> 
>> >> I can think of the following way of doing this: 
>> >> 
>> >> (1) Get the experiment id 
>> >> 
>> >> 
>> >>     exptidquery = db(db.listofexperiments.experimentname == 'ug2') 
>> >>     experimentid = (exptidquery.select())[0].id 
>> >> 
>> >> 
>> >> 
>> >> (2) Get team names and ids corresponding to the experimentid 
>> >> 
>> >> 
>> >>     relevantteams = db(db.teams.experimentid == 
>> >> experimentid).select(db.teams.teamname) 
>> >> 
>> >> 
>> >> 
>> >> But I suppose the above raw SQL connects to the database only once to 
>> do 
>> >> the query. 
>> >> The DAL method above needs to connect to the database twice. Am I 
>> >> understanding this correctly? 
>> >> If so, is there a better way to perform the above raw SQL query using 
>> DAL. 
>> >> 
>> >> 
>> >> Thanks for your help. The relevant table definitions are given below. 
>> >> 
>> >> 
>> >> 
>> >> The relevant table definitions are: 
>> >> 
>> >> # Table containing a list of experiments 
>> >> db.define_table('listofexperiments', 
>> >>                 Field('experimentname', 'string', length=40, 
>> unique=True), 
>> >>                 format='%(experimentname)s') 
>> >> 
>> >> 
>> >> # Table containing teamnames 
>> >> db.define_table('teams', 
>> >>                 Field('teamname', 'string', length=40, required=True, 
>> >>                        notnull=True), 
>> >>                 Field('passwd', 'password'), 
>> >>                 Field('role', 'string', length=20, required=True, 
>> >>                       default='NA'), 
>> >>                 Field('lastround', 'integer', default=0), 
>> >>                 Field('experimentid', 'reference listofexperiments'), 
>> >>                 format = '%(teamname)s', 
>> >>                 migrate='teams.table') 
>> >> 
>> >> 
>> > -- 
>> > 
>> > 
>> > 
>>
>

-- 



Reply via email to