Как объединить две таблицы с помощью sequelize MySQL? - PullRequest
0 голосов
/ 08 января 2020

У меня есть две существующие таблицы с данными, в которых я хотел бы объединить две таблицы, показывающие результат с помощью значения столбца awg и gauge,

Tableone является основной таблицей, а таблица два - ассоциацией

ожидаемый результат:

AWG, item_des, тип_коннектора

таблица 1:

const Sequelize = require('sequelize');

const sequelize = require('../util/dbconnect');

const TableOne= sequelize.define('TableOne', {
  id: {
    type: Sequelize.INTEGER,
    autoIncrement: true,
    allowNull: false,
    primaryKey: true
  },
  awg: {
    type: Sequelize.STRING,
    allowNull: false
  }
});

module.exports = TableOne;

**Table 2:** 

const Sequelize = require('sequelize');

const sequelize = require('../util/dbconnect');

const Tabletwo= sequelize.define('Tabletwo', {
  id: {
    type: Sequelize.INTEGER,
    autoIncrement: true,
    allowNull: false,
    primaryKey: true
  },
  item_des: {
    type: Sequelize.STRING,
  },
  gauge:{
    type: Sequelize.STRING,
  },
  connector_type:{
    type: Sequelize.STRING,
  }

});

module.exports = Tabletwo;

1 Ответ

0 голосов
/ 08 января 2020

Без написания необработанного запроса. Вам необходимо добавить ассоциации к каждому из определений таблицы.

добавить ниже в TableOne

TableOne.hasMany(Tabletwo, {foreignKey: 'YOUR_FOREIGNKEY_HERE'})

добавить ниже в Tabletwo

Tabletwo.belongsTo(TableOne, {foreignKey: 'YOUR_FOREIGNKEY_HERE'})

вам также нужно добавить в свои таблицы чужой ключ, а затем заменить YOUR_FOREIGNKEY_HERE на имя столбца.

, а затем в своем коде необходимо использовать .find на включить

пример ниже:

TableOne.find({ where: { ...}, include: [Tabletwo]})
...