I understand the problem. Please open a ticket with a a request for improvement.
On Tuesday, 22 January 2013 07:53:58 UTC-6, [email protected] wrote: > > person = db(db.person.name='....').select().first() >>> papers = db.paper.authors.contains(person.id).select() >>> >> >> Sorry, I didn't read carefully enough. That's not what I need, I need to > perform a join. My real-world query is rather like: > > db.define_table('person', > Field('name', unique=True), > Field('some_field'), > ) > > Advisor = db.person.with_alias('advisor') > GradStudent = db.person.with_alias('grad') > > db.define_table('thesis_project', > Field('advisors', 'list:reference person'), > Field('candidate', db.person), > Field('title', 'text') > ) > > > > and then: > > db( db.thesis_project.advisors.contains(Advisor.id) & > (db.thesis_project.candidate==GradStudent.id) & > (Advisor.some_field==some_value) & > (GradStudent.some_field==some_value)).select(...) > > > > and it works in mysql using INSTR and CONCAT, and there are other > solutions with other functions that don't seem to work in sqlite, even > though some of them are advertised. That's my puzzle. > > > --

