On Thu, Feb 25, 2016 at 9:43 AM, Krishnakant <krm...@openmailbox.org> wrote:

> Hello,
> I have a query where there are 2 alias for a single table.
> This is because the table contains a self referencing foreign key.
> the table is (groupcode integer primary key, groupname text, subgroupof
> integer foreign key references groupcode).
> Now let's say I wish to have a 2 column query with groups and their
> respective subgroups, I need to join the table to itself making 2 aliases.
> I know the raw query but need to do it through sqlalchemy core.
> I don't use ORM for my project.and need this in the expression language.
>
>
Something like this perhaps:

import sqlalchemy as sa
md = sa.MetaData()
t = sa.Table(
    't', md,
    sa.Column('groupcode', sa.Integer, primary_key=True),
    sa.Column('groupname', sa.Text()),
    sa.Column('subgroupof', sa.ForeignKey('t.groupcode')),
)

subgroup = t.alias('subgroup')
j = t.join(subgroup, subgroup.c.subgroupof == t.c.groupcode)
print sa.select([t.c.groupcode, subgroup.c.groupcode]).select_from(j)


Output:

SELECT t.groupcode, subgroup.groupcode
FROM t JOIN t AS subgroup ON subgroup.subgroupof = t.groupcode


Hope that helps,

Simon

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to