【问题标题】:join and count query in flutter sqflite在颤振 sqflite 中加入和计数查询
【发布时间】:2019-10-14 10:05:16
【问题描述】:

我有 2 张桌子,一张有名字和 id,另一张有 id 和日期, 我试图弄清楚如何创建辅助方法来查询这两个表并返回名称列表以及与其 id 关联的日期数。

Name Table
   id  Name
    1 John
    2 Tom
    3 Frank

Date Table
   id  Date
    1 1/3/19
    1 1/4/19
    1 1/5/19
    2 1/4/19

    Results:
    Name  Count
    John  3
    Tom   1
    Frank 0

据我所知,我只是把所有的名字都撤回了。

  Future<List> queryAllNames() async {
    Database db = await database;
    List<Map> names =
        await db.query(Names, columns: [id, Name]);
    if (names.length > 0) {
      return names;
    }
    return null;
  }

我已经从 sqlite 找到了我需要的原始查询

select Name.name,  count(Date.date) from Name left join Date using(id) group by Name.name;

但仍然无法转换为 sqflite 辅助方法。

【问题讨论】:

    标签: flutter sqflite


    【解决方案1】:

    有一个 rawQuery() 方法。查看Raw SQL queries

    【讨论】:

    • 感谢您帮助我找到了可行的方法。 Future&lt;List&gt; queryAll() async { Database db = await database; List&lt;Map&gt; names = await db.rawQuery( 'select Name.name, count(Date.date) from Name left join Date using(id) group by Name.name'); if (names.length &gt; 0) { return names; } return null; }
    猜你喜欢
    • 2020-06-01
    • 2020-02-26
    • 2020-07-30
    • 2021-09-25
    • 1970-01-01
    • 2020-06-22
    • 2021-05-07
    • 2021-05-10
    • 2021-05-21
    相关资源
    最近更新 更多