On Fri, Jun 22, 2007 at 04:40:58PM -0000, Michael Bayer wrote:
> On Jun 22, 12:12 pm, Christoph Haas <[EMAIL PROTECTED]> wrote:
> > 2007-06-22 18:09:57,852 INFO sqlalchemy.engine.base.Engine.0x..6c SELECT 
> > records_a.id, records_a.domain_id, records_a.dhcpzone_id, records_a.name, 
> > records_a.type, records_a.content, records_a.ttl, records_a.prio, 
> > records_a.change_date, records_a.mac_address, records_a.inet
> > FROM records AS records_a LEFT OUTER JOIN records AS records_ptr ON 
> > records_a.inet = records_ptr.inet AND records_ptr.type = 
> > %(records_ptr_type)s
> > WHERE records_a.type = %(records_a_type)s
> > 2007-06-22 18:09:57,852 INFO sqlalchemy.engine.base.Engine.0x..6c 
> > {'records_a_type': 'A', 'records_ptr_type': 'PTR'}
> >
> > In [5]: result.keys()
> > Out[5]:
> > ['id',
> >  'domain_id',
> >  'dhcpzone_id',
> >  'name',
> >  'type',
> >  'content',
> >  'ttl',
> >  'prio',
> >  'change_date',
> >  'mac_address',
> >  'inet']
> >
> > As you see the keys are just there once. Although the actual SQL result
> > contains these columns for both records_a and the joined records_ptr.
> 
> set use_labels=True in your select() statement.  the point of that is
> to combine table or alias names with column names as labels for all
> selected columns, so that names are automatically unique.  the column-
> targeting i mentioned also would rely upon this to differentiate
> between the two tables.

Thank you. It's a tiny bit closer. However that still only gives the
left side of the join as results:

result=records_a.select(
    records_a.c.type=='A',
    from_obj=[model.outerjoin(records_a, records_ptr,
        ( (records_a.c.inet==records_ptr.c.inet) & (records_ptr.c.type=='PTR') 
))],
    use_labels=True).execute().fetchone()

In [9]: result
Out[9]: (108914, 1, None, u'foo.domain.tld', u'A', u'192.168.26.39', 86400, 0, 
None, None, '192.168.26.39')

In [10]: result.keys()
Out[10]:
['records_a_id',
 'records_a_domain_id',
 'records_a_dhcpzone_id',
 'records_a_name',
 'records_a_type',
 'records_a_content',
 'records_a_ttl',
 'records_a_prio',
 'records_a_change_date',
 'records_a_mac_address',
 'records_a_inet']

Sorry for being a pain. But I'm kind of stuck here.

 Christoph


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to