У меня есть две таблицы базы данных:
books: id | title | author_id
authors: id | name
typeDefs:
const typeDefs = gql`
type Author {
id: ID!
name: String!
}
type Book {
id: ID!
title: String!
author_id: String!
author: Author!
}
type Query {
book(id: ID!): Book
author(id: ID!): Author
}
`
Resolvers:
const resolvers = {
Query: {
async book(parent, args) {
const dbRes = await query('SELECT id, title, author_id FROM books WHERE id=$1', [args.id])
return dbRes[0]
},
async author(parent, args) {
const dbRes = await query('SELECT id, name FROM authors WHERE id=$1', [args.id])
return dbRes[0]
}
}
}
Я могу сделать запрос на получение книги:
const queryBook = gql`
query Book($id: ID!) {
book(id: $id) {
id
title
author_id
}
}
`
const { data } = useQuery(queryBook, { variables: { id: 1 } })
Но как мне сделать запрос на книгу с данными автора на основе author_id, как это?
const queryBook = gql`
query Book($id: ID!) {
book(id: $id) {
id
title
author_id
author {
id
name
}
}
}
`