Sequelize with NodeJS no puede unir tablas con límite
Estoy tratando de implementar una consulta simple que debería verse así:
select * from property join entity_area on property.id=entity_area.entity_id and entity_area.area_id=1 where property.price>300000 limit 12
Bastante sencillo: quiero obtener el resultado combinado y luego limitarlo a 12.
En Sequelize estoy usando la siguiente función:
return models.property.findAll(
{
where: ["price>=?", 300000],
include: [
{
model:models.entity_area,
where: { area_id:1 }
}
],
limit:12
})
Pero este código genera el siguiente sql:
select property.*, entity_area.* from (select * from property where property.price>300000 limit 12) join entity_area on property.id=entity_area.entity_id and entity_area.area_id=1
Lo que tiene una lógica totalmente diferente de lo que estoy tratando de hacer porque en el sql generado primero obtiene 12 resultados y luego intenta unirse con entity_area, y, por supuesto, los 12 resultados aleatorios no necesariamente coinciden con entity_area, así que yo ' No estoy obteniendo resultados.
Por favor sugiérame una forma adecuada de hacerlo. La tabla de propiedades es muy masiva, y tengo que usar el "límite" en lugar de obtener todos los resultados y cortarlos en JavaScript. Además, no me gustaría comenzar a usar consultas sin procesar.