使用 graphql 查询连接 3 个表

Posted

技术标签:

【中文标题】使用 graphql 查询连接 3 个表【英文标题】:join 3 tables using graphql query 【发布时间】:2018-04-25 02:10:46 【问题描述】:

我想加入 3 个表,就像我们在 mysql 中基于主键和外键一样。

我可以使用 graphql(http://graphql.org/) 我的表结构和 graphql 查询如下。谢谢

query($companyId:String)
  Data
    reach
     department 
       departmentId
       departmentName
       description
     
      companyDepartment(companyId:$companyId) 
        primaryId
        departmentId
        companyId
        createdDate
        modifiedDate
        modifiedBy
      
      company(companyId:$companyId) 
        companyId
        companyName
      
    
  

【问题讨论】:

【参考方案1】:

你必须打破你的想法,用 Graph 方式思考 :)

Type Company(node) Type Department(node)

基于这个非常有用的article,无论如何我都会为你做。架构

概念

interface Node 
  id: ID!
  name: String


type Company implements Node 
  id: ID!
  name: String
  departmentsConnection: CompanyDepartmentConnection

type CompanyDepartmentConnection 
  pageInfo: PageInfo!
  edges: [CompanyDepartmentEdge]

type CompanyDepartmentEdge 
  cursor: String!
  node: Company
  linkedAt: DateTime

【讨论】:

以上是关于使用 graphql 查询连接 3 个表的主要内容,如果未能解决你的问题,请参考以下文章

GraphQL graph.cool 用户查询不适用于 Auth0 令牌

使用 ecto 查询连接 3 个表

查询 - 从 3 个表连接

SQL 命令未正确结束尝试使用查询连接 3 个表

如何优化这个 MySql 查询 - 连接 3 个表?

PHP Codeigniter MySQL 查询 - 将 4 个表连接在一起,其中 3 个表使用每个表中的一列分组