查询多对多graphql和sqlite

时间:2019-03-01 02:37:25

标签: graphql

我正在尝试创建Angular7 + graphql + sqlite游戏应用,但我遇到了麻烦。

我有3个db表,一个用于游戏,另一个用于游戏类型,第三个用于游戏和游戏之间的关系表。

我想在graphql上做的基本上是这个连接:

SELECT G.*, GN.genre FROM Games AS G
LEFT JOIN Game_Genre AS GG ON G.id  = GG.game_id 
LEFT JOIN Genre AS GN ON GG.genre_id  = GN.id 
WHERE G.id={GAMEID}

expected result

我设法创建了查询以列出所有游戏和单个游戏,但我无法进行任何查询以列出游戏的类型。

这是我正在使用的架构:

const schema = buildSchema(`
    type Query {
    games(offset:Int = 0, limit:Int = 100): [Games]
    game(id:ID!): Games
}

type Games {
    id: ID
    game_art: String
    game_title: String
    game_serial: String
    game_region: String
    release_year: Int
    players: Int
    developer: String
    publisher: String
}

type Genre {
  id: ID
  genre: String
}

type Game_Genre {
  id: Int
  game_id: Games
  genre_id: Genre
}`);

const root = {
games: args => {
    return query(
        `SELECT * FROM Games LIMIT ${args.offset}, ${args.limit}`,
        false
    );
},
game: args => {
    return query(`SELECT * FROM Games WHERE id='${args.id}'`, true);
}};

提前谢谢

0 个答案:

没有答案