Node.js Последовательно соедините две таблицы и создайте третью таблицу с созданными данными и подсчитайте сумму того же числа в первом столбце

#javascript #mysql #sql #node.js #sequelize.js

#javascript #mysql #sql #node.js #sequelize.js

Вопрос:

Я пытаюсь использовать Sequelize, и мой мозг, должно быть, был сожжен из всего проекта, и теперь я даже не могу присоединиться к таблицам, лол, итак, поехали:
задача в том, что у меня есть две модели, которые создают две таблицы, а другая модель пуста (так что пустая таблица) Я хотел бы объединить две таблицы в третью, а после в другом заявлении я хотел бы подсчитать, сколько пользователей (пример) имеет первый столбец, если есть два пользователя с одинаковыми именами, это означает, что это только один, поэтому он будет считаться как один.

 module.exports = (sequelize, Sequelize) => {
        const Gig = sequelize.define("gig", {
              a: {
                type: Sequelize.STRING,
              },
              b: {
                type: Sequelize.STRING,
              },
              c: {
                type: Sequelize.STRING,
              }
        });
        
      
        return Gig;
      };
 
 module.exports = (sequelize, Sequelize) => {
        const Gig1 = sequelize.define("gig1", {
              a: {
                type: Sequelize.STRING,
              },
              b: {
                type: Sequelize.STRING,
              },
              c: {
                type: Sequelize.STRING,
              }
        });
        
      
        return Gig1;
      };
 
 module.exports = (sequelize, Sequelize) => {
        const Gig2 = sequelize.define("gig2", {
              a: {
                type: Sequelize.STRING,
              },
              b: {
                type: Sequelize.STRING,
              },
              c: {
                type: Sequelize.STRING,
              }
        });
        
      
        return Gig2;
      };
 

это в другом файле

 router.get("/", (req, res) => {
        db.Gig.findAll({here the magic should happen thanks guys})
          .then((users) => {
            console.log(users);
            res.sendStatus(200);
          })
          .catch((err) => {
            console.log(err);
          });
      });
 

итак, Gig Gig1 = Gig2 затем подсчитайте пользователя в a (так что дайте мне сумму без клонов)

Я нашел эту статью, написанную ниже, которая похожа на то, что я ищу, но добавляю результат в Gig2, который является пустым, а затем выполняю вычисления. *

 UNION ALL and an exclusion join
One way to make UNION include only the duplicates I want is to use an exclusion join to eliminate anything from the second result that is already included in the first, like this:
select * from apples as a
   left outer join oranges as o on a.price = o.price
union all
select * from apples as a
   right outer join oranges as o on a.price = o.price
where a.price is null;
This handles duplicate rows correctly and doesn’t include anything it shouldn’t. It’s necessary to use UNION ALL instead of plain UNION, which would eliminate the duplicates I want to keep. This may be significantly more efficient on large result sets, since there’s no need to sort and remove duplicates.