Hasura Graphql- Как передать вывод одного запроса в качестве входных данных для другого запроса?

#postgresql #graphql #hasura

#postgresql #graphql #hasura

Вопрос:

Я новичок в Postgres DB и Hasura-Graphql. Было бы хорошо, если бы кто-нибудь мог мне помочь.

Итак, есть две таблицы: Table1 с (username, email, id, table1id) и Table2 с (username, email, booksRead, visitedLocations, table2_id). Эти две таблицы не связаны (ни PK, ни FK).

Теперь вопрос в том, что я должен запросить из table1, чтобы получить uername и email, с которыми мне нужно запросить table2. Итак, есть ли в любом случае, где я могу добавить вывод одного запроса в качестве входных данных для другого запроса в одном запросе.

Также обратите внимание, что мне нужно перейти от table1 к table2 для некоторых других деталей.

Например:

 query{
 table1{
   username,
   email
 }
 table2(where:{username:username, email:email}){
   username,
   email,
   visitedLocations,
   booksRead
 }
}
  

Ответ №1:

Вы должны использовать табличные отношения или пользовательские функции.

То, что вы хотите сделать, не очень понятно, но я думаю, вам следует изменить схему вашей базы данных:

  • пользовательская таблица с PK
  • Посещенные местоположения с отношением «один ко многим» с пользовательской таблицей
  • booksRead с отношением «один ко многим» с пользовательской таблицей

Итак, запрос может быть:

 query {
    user {
        username
        email
        visitedLocations {
            location
        }
        booksRead {
            book
        }
    }

}