Hai!
Saya memiliki pertanyaan ini:
var scores = Bookshelf.knex('audition_vote').sum('voting_power as score').groupBy('audition_id')
dan saya ingin membungkus kueri ini seperti:
var topScores = Bookshelf.knex.distinct('score').from(function() {
// This works but i want to use "scores" variable
this.sum('voting_power as score').from('audition_vote').groupBy('audition_id').as('scores');
});
console.log(topScores.toString()) mencetak
select distinct `score` from (select sum(`voting_power`) as `score` from `audition_vote` group by `audition_id`) as `scores
Bagaimana cara menggunakan variabel "skor" di dalam from() ????
Apa kueri yang pada akhirnya ingin Anda hasilkan?
Yang terakhir:
select distinct `score` from (select sum(`voting_power`) as `score` from `audition_vote` group by `audition_id`) as `scores`
Kueri benar, tetapi saya ingin menggunakan kembali variabel "skor"
Oh, Anda hanya bisa melakukan:
var scores = Bookshelf.knex('audition_vote')
.sum('voting_power as score')
.groupBy('audition_id')
.as('scores');
var topScores = Bookshelf.knex.distinct('score').from(scores.clone());
.as
diabaikan kecuali berada di dalam subkueri, dan kloning hanya diperlukan jika Anda memutasi kueri scores
tempat lain.
Atau Anda dapat melakukan:
var scores = Bookshelf.knex('audition_vote')
.sum('voting_power as score')
.groupBy('audition_id');
var topScores = Bookshelf.knex.distinct('score').from(scores.clone().as('scores'));
Komentar yang paling membantu
Oh, Anda hanya bisa melakukan:
.as
diabaikan kecuali berada di dalam subkueri, dan kloning hanya diperlukan jika Anda memutasi kueriscores
tempat lain.Atau Anda dapat melakukan: