Knex NodeJS如何为每个选择最大日期的行

时间:2019-12-16 00:23:26

标签: mysql node.js knex.js

我正在NodeJS中使用knex。我的问题是,当每个日期都有最大日期时,我完全不知道如何选择所有行。

我使用该代码:

for (int i = count; --i >= index; )

};

我有结果:

T val = data[i];

当日期是最晚时,我只需要选择它们。我想要这样的样子:

 .from('liczniki')
      .join('klienci', 'liczniki.klienci_idcustomers', '=', 'klienci.idcustomers')
      .join('odczyty', 'odczyty.liczniki_idliczniki', '=','liczniki.idliczniki' )
      .select('liczniki.numer_licznika', 'odczyty.wartosc')
      .where('klienci.idcustomers', '=', idkl)


      .then((result) => {
        if (!result)  { 
          console.log(result);
          var er = 500;
          return er;
        }
        var pass = result;
        console.log(pass)
        return pass;
      })

1 个答案:

答案 0 :(得分:0)

您需要过滤要加入的行。我会将其写为子查询。像这样:

 .from('liczniki')
      .join('klienci', 'liczniki.klienci_idcustomers', '=', 'klienci.idcustomers')
      .select(
         'liczniki.numer_licznika', 
          knex('odczyty')
            .where('liczniki_idliczniki', knex.ref('liczniki.idliczniki'))
            .select(knex.raw('max(??)', ['wartosc']))
            .as('wartosc')
      )
      .where('klienci.idcustomers', '=', idkl)

https://runkit.com/embed/q4dgylmnp69e

相关问题