I didn't ask the question correctly.

In raw sql it would be something like

SELECT name FROM table, CONCAT (first_name, last_name) FROM othertable AS 
name WHERE blah ...

Is it possible to do that without using raw sql?

On Saturday, July 21, 2012 9:54:09 PM UTC-4, Massimo Di Pierro wrote:
>
> You do not have to. The line:
>
> y.colnames=x.colnames
>
> does it for you, as long as the list of fields maps 1 to 1.
>
> On Saturday, 21 July 2012 20:10:09 UTC-5, Cliff Kachinske wrote:
>>
>> This is great.
>>
>> I've not tried it yet, but I'm assuming I can alias the field names if 
>> the tables have different field names with the same data type.
>>
>> Is it possible to combine two field names into a single alias?
>>
>> Thanks
>>
>> On Friday, July 20, 2012 5:35:37 PM UTC-4, Massimo Di Pierro wrote:
>>>
>>> You can also to
>>>
>>> db=DAL()db.define_table('a',Field('name'))
>>> db.define_table('b',Field('name'))
>>> db.a.insert(name='Alex')
>>> db.a.insert(name='Max')
>>> db.a.insert(name='Tim')
>>> db.b.insert(name='John')
>>> db.b.insert(name='Jack')
>>> def union(x,y):
>>>     y.colnames=x.colnames
>>>     return x|y
>>>
>>> *rows = union(db().select(db.a.name),db().select(db.b.name)).sort(lambda 
>>> row: row.name)*
>>>
>>> for row in rows: print row.name
>>>
>>>
>>> This does not translate into a union and runs at the web2py level. Mind 
>>> that while testing I notice a discrepancy between docs and implementation 
>>> of the sort() method. I fixed it in trunk. This code will only work with 
>>> trunk.
>>>
>>> Massimo
>>>
>>>
>>> On Friday, 20 July 2012 16:08:16 UTC-5, Cliff Kachinske wrote:
>>>>
>>>> You can avoid a union like so:
>>>>
>>>> rows = db(q).select(r).as_list()
>>>> rows.extend(db(qq).select(rr).as_list()
>>>>
>>>>
>>>>
>>>> You have to access attributes dictionary fashion, not in dot notation. 
>>>>  Could be a problem for SQLTABLE and descendants.
>>>>
>>>> Google 'sort list of dictionaries' to see how to sort it.
>>>>
>>>> On Friday, July 20, 2012 3:00:58 PM UTC-4, Andrew wrote:
>>>>>
>>>>> Does that mean sample, example, random have to have identical 
>>>>> structures ?
>>>>> What if I just want the id and name columns ?  How do I select just 
>>>>> those in a union scenario?
>>>>>
>>>>> I know massimo doesn't like unions,  but they are required sometimes. 
>>>>>  I am visualizing object relationships in a graph (picture something like 
>>>>> http://bost.ocks.org/mike/fisheye ) and I want to get one list of 
>>>>> nodes.  I've only done it with executesql so far.
>>>>>
>>>>

-- 



Reply via email to