Postgresql 如何在没有sqlalchemy ORM关系的情况下连接查询

Postgresql 如何在没有sqlalchemy ORM关系的情况下连接查询,postgresql,sqlalchemy,Postgresql,Sqlalchemy,我已经为此挣扎了很久。我来自php/mysql,其中可以轻松执行以下查询: SELECT Work_center, ... , MRPW, WCC.Total_Cost FROM tracking LEFT JOIN WCC ON WCC.Well_Type_Code = tracking.PDO_Well_Type 但是现在,对于python、postgresql和sqlalchemy,它给了我以下错误: sqlalchemy.exc.ProgrammingError: (psycopg2.

我已经为此挣扎了很久。我来自php/mysql,其中可以轻松执行以下查询:

SELECT Work_center, ... , MRPW, WCC.Total_Cost FROM tracking LEFT JOIN WCC ON WCC.Well_Type_Code = tracking.PDO_Well_Type
但是现在,对于python、postgresql和sqlalchemy,它给了我以下错误:

sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) relation "wcc" does not exist
LINE 1: ...uit, MRPW, WCC.Total_Cost FROM tracking LEFT JOIN WCC ON WCC...
它问我关系,关系问我外键,但这里没有外键。我不想链接这两个表。虽然我尝试过这样做,但这给了我很多时间,因为这两个表的数据来自csv文件上传。如何使用没有关系和外键的联接进行查询? 知道我花了几个小时的时间搜索和尝试,但似乎不起作用

class WCC(Base):
    __tablename__ = "WCC"
    __table_args__ = {'extend_existing': True} 

    id =                  Column(Integer, primary_key=True, index=True)
    Well_Type_Code =      Column(String, index=True)
    Well_Type_Code_year = Column(String, index=True, unique=True)
    Year =                Column(Integer)
    Total_Cost =          Column(Float)
    #wells = relationship("tracking", back_populates="WCC",foreign_keys=[Well_Type_Code], primaryjoin="tracking.PDO_Well_Type == WCC.Well_Type_Code")


class tracking(Base):
    __tablename__ = "tracking"
    __table_args__ = {'extend_existing': True} 

    id =                  Column(Integer, primary_key=True, index=True)
    Work_center =         Column(String)
    Operation_Short =     Column(String)
    Oper_Act =            Column(String)
    Opr_System_status =   Column(String)
    Earl_start_date =     Column(DateTime)
    EarliestEndDate =     Column(DateTime)
    Station_Code =        Column(String)
    Normal_duration =     Column(Float)
    Norm_duratn_un=       Column(String)
    Well_Name=            Column(String)
    Field =               Column(String)
    Responsible_asset =   Column(String)
    Well_ID =             Column(Integer, unique=True, index=True)
    Well_Location=        Column(String)
    Well_Function=        Column(String)
    Well_Category=        Column(String)
    PCAP_Category=        Column(String)
    Move_days=            Column(Float)
    PDO_Well_Type=        Column(String)

    pick_date =           Column(DateTime)
    pick_date_spud =      Column(DateTime)
    PI_date =             Column(DateTime)
    PI_date_spud =        Column(DateTime)
    location =            Column(Float)
    location_date =       Column(DateTime)
    location_date_spud =  Column(DateTime)
    HUA_date =            Column(DateTime)
    HUA_date_spud =       Column(DateTime)
    WPT_final_date =      Column(DateTime)
    WPT_final_date_spud = Column(DateTime)
    WPT_highlights      = Column(String)
    expected_comm_date  = Column(DateTime)
    commissioning_date  = Column(DateTime)
    EWS_date  =           Column(DateTime)
    cond_conduit=         Column(Text)
    gas_conduit=          Column(Text)
    MRPW=                 Column(Text)
    #cost = relationship("WCC", back_populates="tracking",primaryjoin="tracking.PDO_Well_Type == WCC.Well_Type_Code")

在Postgres中,对象名称在双引号中区分大小写,并且必须始终双引号。表在创建时似乎是双引号的,但在查询中引用时却不是:

class WCC(Base):
    __tablename__ = "WCC"

but 
 LEFT JOIN WCC ON 

表名“WCC”与WCC不同。尝试从创建表的位置删除双引号。如果由于您的ORM而无法实现,则对查询本身进行双引号。但是请记住,您必须在每一个参考资料中重复引用。尽可能避免双引号,任何明显的好处都是不值得的。

请您将导致错误的查询包括在内?我必须双引号引用所有带有大写字母的表/列名。