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

166
Views
¿Cómo optimizar la subconsulta en Objection JS?

Quiero optimizar mi subconsulta. Del documento mysql que encontré.

 SELECT * FROM t1 WHERE t1.column1 IN ( SELECT column1 FROM t2 ORDER BY column1 ); SELECT * FROM t1 WHERE t1.column1 IN ( SELECT DISTINCT column1 FROM t2 ); SELECT * FROM t1 WHERE EXISTS ( SELECT * FROM t2 LIMIT 1 );

Pude lograr este formato usando este código js de objeción.

 Person.query() .from( Person.query() .select( 'persons.name as persons_name', 'persons.disclaimer as persons_disclaimer', 'persons.id as persons_id' ) .as('optimised') .limit(40) ) .select('optimised.*') .select((qb) => { qb.select(raw(`sum(act.count)`)) .from('activity as act') .where('act.p_id', '=', 'optimised.persons_id') .as('actCountSum'); }) .select((qb) => { qb.select(raw(`count(*)`)) .from('activity as act') .where('act.p_id', '=', 'optimised.persons_id') .as('actCount'); }) .debug();

Pero el problema es que obtengo nulo y 0 respectivamente porque en la cláusula where pasa Optimized.persons_id como una cadena.

¿Alguna solución?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

El tercero se ve simplemente mal.

Prueba esto:

 SELECT * FROM t1 WHERE EXISTS ( SELECT 1 FROM t2 WHERE t1.column1 = t2.column1 );

Si no hay duplicados, simplemente hazlo.

 SELECT t1.* FROM t1 JOIN t2 ON t1.column1 = t2.column1
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!