バックエンド nodejs サービスでjs-data-sql
DSSqlAdapterを使用しています。モデル定義には、hasOne
次のように定義されたリレーションシップがあります。
module.exports = {
name: 'covariance_predictions',
idAttribute: 'id',
relations: {
belongsTo: {
assets: {
localKey: 'asset_1_id',
localField: 'Covariance_Predictions'
}
},
hasOne: {
currencies: {
localField: 'currency',
localKey: 'currency_id'
}
}
}
};
以下を使用してアダプターを呼び出します。
covariancePredictions.findAll(params, {
with: ['currencies']
})
質問
knex
デバッグを有効にした後、left join
ステートメントを使用するのではなく、次のような後続の SQL クエリを使用することがわかりました。
sql: 'select "currencies".* from "currencies" where "id" in (?, ?, ?, ?, ?, ?, ?)' }
js-data-sql
代わりにDSSqlAdapterをビルドする方法を知っている人はいleft join
ますか? お気に入り:
select "covariance_predictions".id, [...], "currencies".code from "covariance_predictions" left join "currencies" on "currencies".id = "covariance_predictions".currency_id;