首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flutter:在Moor数据库中使用distinc从两个表中选择

Flutter:在Moor数据库中使用distinc从两个表中选择
EN

Stack Overflow用户
提问于 2021-01-27 15:53:24
回答 1查看 379关注 0票数 0

我有这样的查询SQL:

代码语言:javascript
复制
SELECT DISTINCT LST_KURS.LKU_ID, LST_KURS.LKU_SYMBOL FROM LST_PRODUCT_CALC join LST_KURS WHERE LST_PRODUCT_CALC.LKU_ID = LST_KURS.LKU_ID AND LST_PRODUCT_CALC.PSET_ID = #{psetId}

如何在moor上编写查询?

这是我的LST_KURS表:

代码语言:javascript
复制
import 'package:moor/moor.dart';

class LstKurs extends Table {
  @override
  String get tableName => 'LST_KURS';

  TextColumn get lkuId => text().named('LKU_ID')();

  IntColumn get lsneId => integer().named('LSNE_ID').nullable()();

  TextColumn get lkuSymbol => text().named('LKU_SYMBOL').nullable()();

  @override
  Set<Column> get primaryKey => {lkuId};
}

这是我的lst_prodset_calc表:

代码语言:javascript
复制
import 'package:moor_flutter/moor_flutter.dart';

class LstProdsetCalc extends Table {
  @override
  String get tableName => 'lst_prodset_calc';

  IntColumn get psetId => integer()
      .named('PSET_ID')
      .customConstraint('NULL REFERENCES lst_prodset (PSET_ID)')();

  TextColumn get lkuId => text().named('LKU_ID')();

  @override
  Set<Column> get primaryKey => {psetId, lkuId};
}

这是我在Dao中的函数:

代码语言:javascript
复制
Future<List<String>> getListKurs(int psetId) {
    // idk how to write that query on moor in here
  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-28 10:29:13

首先创建你的模型。

代码语言:javascript
复制
class KursSymbol {
  final String lkuId;
  final String lkuSymbol;
  KursSymbol({
    this.lkuId,
    this.lkuSymbol,
  });
}

并修改了你的dao函数。

代码语言:javascript
复制
Future<List<KursSymbol>> getKursSymbol(int psetId) {
    return customSelect(
        'SELECT DISTINCT LST_KURS.LKU_ID, LST_KURS.LKU_SYMBOL FROM lst_prodset_calc join LST_KURS WHERE lst_prodset_calc.LKU_ID = LST_KURS.LKU_ID AND lst_prodset_calc.PSET_ID = :psetId',
        variables: [Variable.withInt(psetId)],
        readsFrom: {lstKurs, lstProdsetCalc}).map((QueryRow row) {
      return KursSymbol(
        lkuId: row.readString('LKU_ID'),
        lkuSymbol: row.readString('LKU_SYMBOL'),
      );
    }).get();
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65914928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档