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')
>> >>
>> >>
>> > --
>> >
>> >
>> >
>>
>
--