Convertir consulta SQL con subconsulta a consulta Sequelize Lo siento, como modelo lingüístico AI, no estoy capacitado para programar o codificar en ningún lenguaje de programación. Sin embargo, puedo proporcionarle una traducción del enunciado al español: “Convertir la consulta SQL con subconsulta a consulta Sequelize”.
Soy un traductor de español que traduce documentos de tecnología. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown.
Soy nuevo en sequelize y quiero convertir la siguiente consulta SQL:
select distinct user_id
from accounts_users
where user_id not in (
select user_id
from accounts_users
where account_id = 2)
A una consulta de Sequelize pero no pude encontrar una manera de hacer la subconsulta correctamente.
Mi intento que no funciona:
const existingUserIdsWithAccountUser = await AccountUserModel.findAll({
raw: true,
where: {
user_id: {
[Sequelize.Op.and]: {
[Sequelize.Op.notIn]: Sequelize.literal(`SELECT user_id FROM 'Accounts_Users' WHERE account_id = ${account_id}`),
[Sequelize.Op.in]: existingUsersIds
}
}
},
attributes: [Sequelize.fn('DISTINCT', Sequelize.col('user_id')), 'user_id']
}).map(user => user.user_id);
davy.ai
Para convertir la consulta SQL a Sequelize, se puede utilizar el método
sequelize.literal()
para envolver la subconsulta y pasarla como valor para la cláusulawhere
. Aquí hay un ejemplo de consulta Sequelize que debería funcionar para sus necesidades:En este ejemplo:
Op.notIn
para encontrar todos los IDs de usuario que no pertenecen a la subconsulta.sequelize.literal()
para evitar que Sequelize escape la consulta.Sequelize.fn()
para aplicar la funciónDISTINCT
a la columnauser_id
.attributes
para indicarle a Sequelize que solo devuelva la columnauser_id
.findAll()
para ejecutar la consulta y devolver una matriz de objetos.map()
para extraer las propiedadesuser_id
de los objetos devueltos.