【发布时间】:2021-03-11 18:11:04
【问题描述】:
我有一个问题...
所以我一直在环顾四周,似乎 GraphQL 无法优化其解析器并将它们“组合”成一个具有多个连接的 SQL 查询。
例如,假设我们有这种想象的关系:
user(id=2) {
name
companies {
name
country {
id
name
planet {
id
name
}
}
}
}
据我所知,您可以在一个 sql 查询中获取所有这些数据:
SELECT *
FROM users
INNER JOIN companies ON users.id = companies.id
INNER JOIN countries ON countries.id = companies.country_id
INNER JOIN planets ON planets.id = countries.planet_id
WHERE users.id = 2;
GraphQL 似乎无法实现。最多可以使用一个数据加载器,它允许我进行 4 个查询:
- 通过 id 2 获取用户
- 获取 user_id = 2 的公司
- 从查询 (2) 中获取带有 country_ids 的国家
- 从查询 (3) 中获取具有 planet_ids 的行星
我理解对了吗?
【问题讨论】:
标签: sql node.js postgresql graphql