What happens if you replace join(clips_table.Clips)
with join(signals_table.Signals.clips) ie. telling SQLAlchemy to use the predefined relationship between Signals and Clips as the join condition. On Tue, Feb 24, 2015 at 12:35 PM, eli rashlin <eli.rash...@gmail.com> wrote: > I'm Sorry Simon - wrong query... > > This is the query that gives me the error > > query_obj = engine.query(signals_table.Signals.sig_value, > > signals_table.Signals.exist_in_frames, > > signals_table.Signals.local_frames, > clips_table.Clips.clip_name).\ > join(clips_table.Clips).\ > > filter(signals_table.Signals.message_id == msg_id).\ > filter(signals_table.Signals.signal_id > == sig_id).\ > > filter(func.format(signals_table.Signals.sig_value, 2) == > func.format(sig_val, 2)).\ > > order_by(signals_table.Signals.sig_value) > > > On Tuesday, February 24, 2015 at 1:09:12 PM UTC+2, Simon King wrote: >> >> I'm not sure I understand - the line you've shown doesn't include any >> joins between Signals and Clips, so I don't know why that error would >> occur. >> >> In general, if you are seeing that error message, then you need to >> explicitly tell SQLAlchemy the join condition between the 2 tables. >> This is normally done using the "primaryjoin" parameter when defining >> the relationships. >> >> If you are getting the error at query time and you really *are* >> performing a join, you can specify the join condition at that time as >> well: >> >> >> http://docs.sqlalchemy.org/en/rel_0_9/orm/tutorial.html#querying-with-joins >> >> Hope that helps, >> >> Simon >> >> On Tue, Feb 24, 2015 at 7:56 AM, eli rashlin <eli.r...@gmail.com> wrote: >> > Thanks Simon for your replay. >> > when I'm removing the FK definition from the Column - The tables are >> > being >> > built as they should - the ptoblem is when i try to perform a join I'm >> > getting the following error: >> > >> > Can't find any foreign key relationships between 'Signals' and 'Clips'. >> > >> > and this is the code: >> > >> > >> > return engine.query(func.count(signals_table.Signals.sig_value)).\ >> > filter(signals_table.Signals.message_id == msg_id).\ >> > filter(signals_table.Signals.signal_id == sig_id).\ >> > filter(func.format(signals_table.Signals.sig_value, 2) == >> > func.format(sig_val, 2)).\ first()[0] >> > >> > >> > and this is the definition of the class Clips: >> > from datetime import datetime from sqlalchemy import * from >> > sqlalchemy.orm >> > import relationship from BaseCoverRuns import Base class Clips(Base): >> > __table_args__ = { 'mysql_engine': 'MyISAM', 'mysql_charset': 'utf8' } >> > __tablename__ = 'Clips' id = Column(Integer, autoincrement=True, >> > primary_key=True) clip_name = Column(String(255)) def >> > get_table_orm_def(self): return self.__table__ def __init__(self, >> > clip_name=None): self.clip_name = clip_name def __repr__(self): return >> > "<Clips ('%s')>" % (self.clip_name) >> > >> > -- >> > 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+...@googlegroups.com. >> > To post to this group, send email to sqlal...@googlegroups.com. >> > Visit this group at http://groups.google.com/group/sqlalchemy. >> > For more options, visit https://groups.google.com/d/optout. > > -- > 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 http://groups.google.com/group/sqlalchemy. > For more options, visit https://groups.google.com/d/optout. -- 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 http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.