Tengo un problema peculiar. Tengo una consulta conjunta debido a la distribución de datos en varias tablas. Quiero ejecutar esto como consulta sql sin procesar usando el módulo de nodo para secuenciar, ya que mucho código existente está asociado usando secuencializar orm. No quiero usar orm aquí, sino solo una consulta sin procesar.
SELECT testmodel.bacode, testmodel2.paopkey from (SELECT ptr.paopkey as paopkey, psgkey.pskey from (SELECT * FROM pts where paopkey = 4 and ptr_active = 1) ptr, pt_sg psgkey where ptr.pkey = psgkey.pkey) testmodel2, pt_act testmodel where testmodel.pskey = testmodel2.pskey;Cualquier consejo si la consulta anterior se puede ejecutar como una consulta sin procesar y los datos se pueden capturar como resultado. Además, cuando ejecuto el siguiente código con el siguiente código de secuencia, aparece el error "_sequelize.default.query no es una función"
import Sequelize from 'sequelize'; async function getTestDataList(opcoKey) { const testdata = await Sequelize.query(`SELECT testmodel.bacode, testmodel2.paopkey from (SELECT ptr.paopkey as paopkey, psgkey.pskey from (SELECT * FROM pts where paopkey = 4 and ptr_active = 1) ptr, pt_sg psgkey where ptr.pkey = psgkey.pkey) testmodel2, pt_act testmodel where testmodel.pskey = testmodel2.pskey;`, { type: Sequelize.QueryTypes.SELECT }).then(function (results) { // SELECT query - use then }) return toPlain(testdata); }El código Dbclient que usa la instancia de secuenciación es el siguiente
import config from 'config'; import Sequelize from 'sequelize'; class DataSource { constructor() {this.DBclient = null; } initializeDB(dbCredentials) { const dataSource = config.datasource; const options = { host: "127.0.0.1", dialect: dataSource.dialect, port: dataSource.port, logging: false, }; const { password } = dbCredentials || dataSource; this.DBclient = new Sequelize( dataSource.database, "root", "root", options, ); } getDBClient() { return this.DBclient; }}export default new DataSource();Debe almacenar una conexión Sequelize creada y usarla para llamar al método de query :
const sequelize = new Sequilize(connection_options_here) const testdata = await sequelize.query(`SELECT testmodel.bacode, testmodel2.paopkey from (SELECT ptr.paopkey as paopkey, psgkey.pskey from (SELECT * FROM pts where paopkey = 4 and ptr_active = 1) ptr, pt_sg psgkey where ptr.pkey = psgkey.pkey) testmodel2, pt_act testmodel where testmodel.pskey = testmodel2.pskey;`, { type: Sequelize.QueryTypes.SELECT }) Lo then en el código anterior porque no es necesario, por lo que usa await .