【发布时间】:2020-09-14 05:57:37
【问题描述】:
我为此苦苦挣扎。我来自 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")
【问题讨论】:
-
能否请您提供导致该错误的查询?
标签: postgresql sqlalchemy