2017-11-13 8 views
0

sequelizeのクエリジェネレータの別の選択のテーブルとしてクエリの結果を使用することはできますか?Sequelize:selectQueryのテーブルとしてクエリ結果を使用

"message": "Table 'db.undefined' doesn't exist" 
"name": "SequelizeDatabaseError" 
"code": "ER_NO_SUCH_TABLE" 

:しかし、私はというエラーを取得し

const innerSelect = 
sequelize.dialect.QueryGenerator.selectQuery('target', { 
      attributes: ['fk1_id'], 
      where: { 
       fk1_id: fk1_id, 
       fk2_id: fk2_id, 
      }, 
     }).slice(0, -1); 

const selectAs = sequelize.dialect.QueryGenerator.selectQuery(
    sequelize.literal(`${innerSelect}`), { 
      attributes: ['id'], 
     }).slice(0, -1); 

UPDATE target 
SET fk1_id = '1' 
WHERE id NOT IN 
    (SELECT id 
    FROM (
     SELECT id 
     FROM target 
     WHERE fk1_id = 1 AND fk2_id = 2 
     ) AS inner_target) 
    AND fk1_id IS NULL AND fk2_id = '2' LIMIT 1 

と私はこれを実現しようとしている:ここで私は、生成取得しようとしているSQLですインナーセレクトはから選択しようとしていますundefined

どのような提案をいただければ幸いです!

答えて

0

このエラーによれば、照会しているテーブルは作成されていません。

+0

私がしたいのは、その "テーブル"として最初のクエリ( 'inner_select')の結果を使用することです –

+0

あなたは生のSQLクエリをsequelize.query()関数に渡すべきだと思います。 –

+0

例えば sequelize.query( "あなたのSQLクエリ")スプレッド(関数(結果、メタデータ){ /* 何かをする * /} )。 –

関連する問題