you join them first and then you belong() on the type column.
db(
(db.zoo.tier == db.animals.id) &
(db.animals.type.belongs(['test1', 'test2']))
).select(db.zoo.ALL)
On Thursday, August 8, 2013 10:19:47 PM UTC+2, dave wrote:
>
> ok that works but I have one other question, how would I use the belongs
> operator If I want to refer a field by a name for example
> instead of rows = db(db.zoo.tier.belongs([2, 3])).select() I want to do
> this
> rows = db(db.zoo.tier.belongs(["test 2", "test
> 3"])).select() ?
>
> On Thursday, August 8, 2013 12:51:12 PM UTC-7, Massimo Di Pierro wrote:
>>
>> This
>>
>> rows = db(db.zoo.tier == 2).select()
>>
>> is equivalent to
>>
>> rows = db(db.zoo.tier.belongs([2])).select()
>>
>> you can do
>>
>> rows = db(db.zoo.tier.belongs([2, 3])).select()
>>
>>
>> On Thursday, 8 August 2013 14:28:47 UTC-5, dave wrote:
>>>
>>> I have two tables defined as follows
>>>
>>> db.define_table('animals',
>>> Field('type'),
>>> format='%(type)s')
>>>
>>> db.define_table('zoo',
>>> Field('name'),
>>> Field('tier', 'reference animals'),
>>> format='%(name)s'
>>> )
>>>
>>> field type is a column with values like, test 1, test 2, test 3
>>> now if I want to select all the records of table zoo with 'test 2' I can
>>> do something like this
>>>
>>> rows = db(db.zoo.tier == "2").select()
>>>
>>> but why can't I do something like
>>> db(db.zoo.tier.contains("2")).select() or
>>> pass a list ["2", "3"] to the contains operator to get all the records
>>> of "test 2" and "test 3"? can you suggest another way of implementing this?
>>>
>>
--
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.