Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

224
Views
Unirse desde múltiples tablas usando SQLAlchemy

Creo que estoy bastante cerca de aquí, pero tal vez necesito algunos consejos. Estoy tratando de ejecutar la consulta SQL a continuación en SQL Alchemy.

 Endpoints for populating the UI with data. These need to consist of some joins. select constraintid, sja.segment, sjs.source, sjct.constrainttype, constraintvalue, targeting, frequency, period from signaljourneyaudienceconstraints JOIN signaljourneyaudiences sja ON sja.audienceid = signaljourneyaudienceconstraints.audienceid; JOIN signaljourneysources sjs ON sjs.sourceid = signaljourneyaudienceconstraints.sourceid JOIN signaljourneyconstrainttype sjct ON sjct.constrainttypeid = signaljourneyaudienceconstraints.constrainttypeid

He leído algunos documentos, creo que estoy en la línea correcta, pero sigo recibiendo errores como

 sqlalchemy.exc.ArgumentError: Join target SignalJourneyAudiences.segment does not refer to a mapped entity

Lo que obtengo porque SignalJourneyAudiences.segment no es una clave, estaba tratando de replicar la consulta SQL que sé que funciona.

 @app.get("/get-main-query-data", status_code=status.HTTP_200_OK) def get_main_query_data(): """Returns data for the main query.""" return ( db.query( models.SignalJourneyAudienceConstraints.constraintId, models.SignalJourneyAudiences.segment, models.SingalJourneySources.source, models.SignalJourneyConstraintType.constraintType, models.SignalJourneyAudienceConstraints.constraintValue, models.SignalJourneyAudienceConstraints.targeting, models.SignalJourneyAudienceConstraints.frequency, models.SignalJourneyAudienceConstraints.period, ) .join( models.SignalJourneyAudiences.segment, models.SignalJourneyAudiences.audienceId == models.SignalJourneyAudienceConstraints.audienceId, ) .join( models.SingalJourneySources.source, models.SingalJourneySources.sourceId == models.SignalJourneyAudienceConstraints.sourceId, ) .join( models.SignalJourneyConstraintType.constraintType, models.SignalJourneyConstraintType.constraintTypeId == models.SignalJourneyAudienceConstraints.constraintTypeId, ) .all() )

¿Tengo razón al pensar db.query() es mi cláusula de selección y luego hago cosas como uniones, filtros, etc.?

cualquier ayuda sería muy apreciada

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

He resuelto el problema, sabía que estaba en el camino correcto.

yo estaba usando

 .join( models.SignalJourneyAudiences.segment, models.SignalJourneyAudiences.audienceId == models.SignalJourneyAudienceConstraints.audienceId, )

en vez de

 .join( models.SignalJourneyAudiences, models.SignalJourneyAudiences.audienceId == models.SignalJourneyAudienceConstraints.audienceId, )
 @app.get("/get-main-query-data", status_code=status.HTTP_200_OK) def get_main_query_data(): """Returns data for the main query.""" return ( db.query( models.SignalJourneyAudienceConstraints.constraintId, models.SignalJourneyAudiences.segment, models.SingalJourneySources.source, models.SignalJourneyConstraintType.constraintType, models.SignalJourneyAudienceConstraints.constraintValue, models.SignalJourneyAudienceConstraints.targeting, models.SignalJourneyAudienceConstraints.frequency, models.SignalJourneyAudienceConstraints.period, ) .join( models.SignalJourneyAudiences, models.SignalJourneyAudiences.audienceId == models.SignalJourneyAudienceConstraints.audienceId, ) .join( models.SingalJourneySources, models.SingalJourneySources.sourceId == models.SignalJourneyAudienceConstraints.sourceId, ) .join( models.SignalJourneyConstraintType, models.SignalJourneyConstraintType.constraintTypeId == models.SignalJourneyAudienceConstraints.constraintTypeId, ) .all() )
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!