在 flutter sqflite 中加入和计数查询

join and count query in flutter sqflite

我有 2 个表,一个包含名称和 ID,另一个包含 ID 和日期, 我想弄清楚如何创建辅助方法来查询这两个表和 return 名称列表以及与其 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;

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

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