[英]Error: Tried to select attributes using Sequelize.cast or Sequelize.fn without specifying an alias for the result, during eager loading
[英]sequelize - Specifying attributes for SELECT queries while using inner join
我想從主表帳戶中獲取並將其與帳戶歷史記錄進行比較。 兩個表之間存在 On To many 關系
SELECT account."userName", (account."postNumber" - accountHistory."postNumber") AS postNumber
FROM public."Accounts" AS account INNER JOIN public."AccountHistories" AS accountHistory
ON account."userName" = accountHistory."userName"
WHERE accountHistory."scrappingDate" = '2022-01-08 23:59:39+01'
ORDER BY postNumber DESC;
我的問題是如何使用 sequilize 進行查詢? 我試過了,但我無法更改屬性的名稱並進行減法
await this.accountRepository.findAll({
where: {'$accountHistory.createdAt$' : '2022-01-08 23:59:39+01'},
include: [{
model: AccountHistory,
required: false
}],
attributes: ['userName',['$accountHistory.postNumber $', 'postNumber '],postNumber ],
order: [[$accountHistory.createdAt$', 'DESC']],
})
您可能需要使用Sequelize.literal將計算作為別名屬性執行,例如:
const { literal } = require('sequelize')
await this.accountRepository.findAll({
where: {'$accountHistory.createdAt$' : '2022-01-08 23:59:39+01'},
include: [{
model: AccountHistory,
required: false
}],
attributes: [
'userName',
[
literal('"account"."postNumber" - "accountHistory"."postNumber"'),
'postNumber'
]
],
order: [[$accountHistory.createdAt$', 'DESC']],
})
根據您的 SQL 方言,該確切語法可能不起作用 - 我不熟悉您使用的$
符號
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.