Получение и объединение двух столов мавра - PullRequest
0 голосов
/ 18 апреля 2020

Как мне получить все строки таблицы, равные идентификатору другой таблицы?

У меня есть этот класс, который возвращает объект и список

class BreakfastWithFoods {

 BreakfastNutrients nutrients;
 List<Food> listOfFood;

 BreakfastWithFoods({
   @required this.nutrients,
   @required this.listOfFood  
 });
}

И это мой класс таблицы

class BreakfastNutrients extends Table {

 IntColumn get id => integer().autoIncrement()();
 IntColumn get calories => integer().nullable()();
 RealColumn get carbs => real().nullable()();
 RealColumn get fat => real().nullable()();
 RealColumn get protein => real().nullable()();

}

class Food extends Table {

 IntColumn get id => integer().autoIncrement()();
 IntColumn get mealId => integer()();
 TextColumn get name => text()();
 IntColumn get numberOfServings => integer()();
 TextColumn get servingSize => text()();
 IntColumn get calories => integer()();
 RealColumn get carbs => real()();
 RealColumn get fat => real()();
 RealColumn get protein => real()();

}

и мой текущий прогресс это

Stream<List<BreakfastWithFoods>> watchAllBreakFast() {

return select(breakfastNutrients)
        .join([
          leftOuterJoin(food, food.id.equalsExp(breakfastNutrients.id))
        ])
        .watch()
        .map( (rows) => rows.map( (row) {
          return BreakfastWithFoods(nutrients: row.readTable(breakfastNutrients), 
                                    listOfFood: [row.readTable(food)]);
        })
        );

}
...