Comment puis-je exécuter cette requête dans Sequelize
P粉354602955
P粉354602955 2023-09-05 09:43:31
0
2
478
<p><pre class="brush:php;toolbar:false;">SELECT * DE article_master WHERE project_id IN (SELECT id FROM project_master OÙ workspace_id dans (SELECT id FROM workspace_master OÙ company_id = 4));</pre> <p>Comment exécuter cette requête mysql dans sequelize - Node js sans utiliser la requête originale ? </p>
P粉354602955
P粉354602955

répondre à tous(2)
P粉245003607

Si la structure de votre modèle est similaire à item_master 有许多 project_master,并且 project_master 有许多 workspace_master,那么以下sequelize查询将与async/awaitPostulez ensemble.

Au fur et à mesure que je modifie ma réponse. Comme vous l'avez dit dans vos commentaires, vous avez votre structure de modèle, par exemple, l'espace de travail comporte de nombreux projets, le projet comporte de nombreux projets. La requête Sequelize ressemblera alors à :

const getResult = async (workpace_id, company_id = 4) => {
      const result = await workspace_master.findAll({
      subQuery: false,
      include: [
        {
          model: project_master,
          as: 'project_masters', // this is your alias defined in model
          attributes: ['id','foo','bar'],
          include: [
            {
              model: item_master,
              as: 'item_masters', // this is your alias defined in model
              attributes: ['id','foo','bar']
            }
          ]
        }
      ],
      where: {
         id: workspace_id,
         company_id: company_id
      }
    });
    
    if(!result || !result.length) return res.send('Something went wrong!');
    return res.send(result);
   }

Essayez-le maintenant, j'espère que cela résoudra votre problème.

P粉300541798
const item = await Item.findAll({
    where: {
        status: { [Op.ne]: 99 },
        '$project.workspace.company_id$': { [Op.eq]: req.user.companyId }
    },
    include: {
        model: Project,
        as: 'project',
        attributes: ['id'],
        include: {
            model: Workspace,
            as: 'workspace',
            attributes: ['id', 'companyId'],
            where: {
                companyId: req.user.companyId
            },
        },
    }
})

Cela fonctionne comme je le souhaite.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal