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

267
Views
cómo escribir una subconsulta dentro de la declaración de unión

Esta es mi subconsulta:

 const subquery = async () => { return await knex.select('*') .from('contracts') .where('estate_id', '=', estateid) }

Y así es como lo estoy insertando en la declaración de unión:

 const data = await knex('clients') .join(await subquery(), 'clients.client_id', 'contracts.client_id')

Pero esto da como resultado un error, mi pregunta es cuál es la forma correcta de escribir una subconsulta y luego incluirla dentro de una declaración de combinación, usando async/await.

En los documentos hay una mención sobre las subconsultas, pero no es para el caso de combinación y no intento adaptarlo a un caso de combinación:

 knex('users').where('votes', '>', 100) const subquery = knex('users') .where('votes', '>', 100) .andWhere('status', 'active') .orWhere('name', 'John') .select('id'); knex('accounts').where('id', 'in', subquery)
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

No es necesario esperar la subconsulta, simplemente puede pasar una función que represente la subconsulta como el primer argumento de la combinación. es decir

 const data = await knex('clients') .join(function() { this.select('*') .from('contracts') .where('estate_id', '=', estateid); }, 'clients.client_id', 'contracts.client_id');

Tenga en cuenta que la referencia a knex cambia de knex a this una vez dentro de la subconsulta. Si desea mantener la subconsulta separada, debería poder hacerlo como

 const subquery = function() { this.select('*') .from('contracts') .where('estate_id', '=', estateid) } const data = await knex('clients') .join(subquery, 'clients.client_id', 'contracts.client_id')
about 4 years ago · Juan Pablo Isaza 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!