私は2つのテーブル、計画テーブルとplan_detailsテーブルに参加しようとしています。以下は、テーブルの外観の2つの例です。- PostgreSQLの
PLANS表
+---------+------+-----------+
| user_id | plan | is_active |
+---------+------+-----------+
| 1 | 10 | true |
| 1 | 11 | false |
| 2 | 11 | true |
PLAN_DETAILS表
+---------+------+-------+-----------+
| plan_id | cost | price | is_active |
+---------+------+-------+-----------+
| 10 | 19 | 199 | true |
| 11 | 13 | 149 | true |
私は唯一のアクティブなプランを引きたいの費用がかかり、各ユーザーに関連する価格。今、私のknex文は次のとおりです。私はそこにis_active: 'true'
を続ければ
knex('plans')
.where({
user_id: 1,
is_active: 'true'
})
.select(
'plans.plan',
'plan_details.cost',
'plan_details.price'
)
.join('plan_details as plan_details', 'plan_details.plan_id', 'plans.plan')
.then(function (user_plan_id) {
console.log(user_plan_id);
});
は今、私はUnhandled rejection error: column reference "is_active" is ambiguous
を取得します。私がis_active部分を取り除くと、ユーザーに対してどのプランがアクティブであるかに関する情報だけが必要な場合でも、ユーザーを参照する両方のプランの情報が得られます。
ユーザーのアクティブプランのみを取得するにはどうすればよいですか?私はORMとしてKNEX.JSを使用していますが、このために生のSQLも使用しています。