struct T_AssetTransitCircuit {
1. asset_id
2. vendor_id
3. vendor
}

struct T_AssetTransportCircuit {
1. asset_id
2. vendor_id
3. vendor
}

struct T_Vendor {
  1: i32 id,
  2: optional string name,
  3: optional string sf_id,
  4: optional string transit_as_id,
  5: optional i64 created_by,
  6: optional i64 created_at,
  7: optional i64 updated_by,
  8: optional i64 updated_at,
  9: optional bool active
}

struct T_Circuit {
1. asset_id
2. vendor_id
3. vendor
}

class Vendor:
__tablename__ = 'vendor'
id = Column(DBT.UNSIGNED_INT10, primary_key=True, autoincrement=True)
    name = Column(DBT.STRING)
    sf_id = Column(DBT.STRING, unique=True, nullable=False)
    transit_as_id = Column(DBT.STRING)
    created_by = Column(mysql.BIGINT(20))
    created_at = Column(NumericDatetime, default=current_timestamp)
    updated_by = Column(mysql.BIGINT(20))
    updated_at = Column(
        NumericDatetime,
        nullable=False,
        default=current_timestamp,
        onupdate=current_timestamp)
    active = Column(DBT.UNSIGNED_SMALLINT, nullable=False, default=1)

vendor_mapper = mapper(
    T_Vendor,
    Vendor.__table__,
)


class AssetTransitCircuit:
__tablename__ = 'asset_transit_circuit'
id = Column(
        DBT.UNSIGNED_INT_ID,
        ForeignKey("fb_asset.id"),
        primary_key=True,
    )
vendor_id = Column(DBT.UNSIGNED_INT10, ForeignKey("vendor.id"))


class AssetTransportCircuit:
__table__ = 'asset_transport_circuit'
id = Column(
        DBT.UNSIGNED_INT_ID,
        ForeignKey("fb_asset.id"),
        primary_key=True,
    )
vendor_id = Column(DBT.UNSIGNED_INT10, ForeignKey("vendor.id"))

c1_select = select([
AssetTransportCircuit.id,
AssetTransportCircuit.vendor_id,
])

c2_select = select([
AssetTransitCircuit.id,
AssetTransitCircuit.vendor_id,
])

c1_mapper = mapper(
TCircuit,
c1_select,
primary_key=[c1_select.c.id],
properties={
  'asset_id': c1_select.c.id,
  'vendor_id': c1_select.c.vendor_id,
  'vendor': relationship(
            vendor_mapper,
            foreign_keys=[c1_select.c.vendor_id],
        ),
)

c2_mapper = mapper(
TCircuit,
c2_select,
primary_key=[c2_select.c.id],
properties={
  'asset_id': c2_select.c.id,
  'vendor_id': c2_select.c.vendor_id,
  'vendor': relationship(
            vendor_mapper,
            foreign_keys=[c2_select.c.vendor_id],
        ),
)

q1 
= 
session.query(c1.mapper._class).options(joinedload('vendor')).options(load_load('id'))
q2 
= 
session.query(c2.mapper._class).options(joinedload('vendor')).options(load_load('id'))
q1.union(q2).all()

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
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