Knex: Subquery dalam klausa "dari" menggunakan contoh lain dari knex

Dibuat pada 22 Okt 2014  ·  3Komentar  ·  Sumber: knex/knex

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() ????

question

Komentar yang paling membantu

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'));

Semua 3 komentar

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'));
Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

lanceschi picture lanceschi  ·  3Komentar

marianomerlo picture marianomerlo  ·  3Komentar

tjwebb picture tjwebb  ·  3Komentar

zettam picture zettam  ·  3Komentar

mishitpatel picture mishitpatel  ·  3Komentar