Pg-promise: Question about get data from nested tables

Created on 7 Apr 2016  ·  12Comments  ·  Source: vitaly-t/pg-promise

Hi. Sorry for my stupid question, but i can't understand where I make error.
For example i have 2 tables:
User(id, name) and Address(id, name, user_id). In each table i have 5 rows.
In query result i need to get json object a-la:

"data": [
    {
      "id": 1,
      "name": "Maks",
      "Adress": { 
            "id": 1,
            "name": "bla-bla",
            "user_id": 1,
      }
    },
    {
      "id": 2,
      "name": "Maks",
      "Adress": { 
            "id": 1,
            "name": "bla-bla",
            "user_id": 2,
      }
    }
  ]

I cant' understand how i need to make query.
If I query to db like this: "SELECT * FROM user, adress WHERE adress.user_id = user.id" i get instead user name - adress name.
I try to do this with transactions, but i can't understand how to iterate query on all data.
Sorry for my english

invalid / unrelated question

Most helpful comment

Но должна признать - приятно было увидеть, что символы экранируете на автомате, внимание к деталям библиотеки у вас не отнять.

All 12 comments

This forum is mainly for reporting issues with the library, sometimes questions/suggestions about using it.

Your questions is about writing SQL right, which is completely irrelevant to this library. You should ask it elsewhere, like on StackOverflow.com.

Thanks. But i cant do this query with your library. And i ask help to work with pg-promise.
Thanks for you attention. On stack you answer more thoroughly and everywhere where they could tell about the library . And in fact , when it had a question that I 'm trying to solve a few days - can not wait for help . OK.

Но должна признать - приятно было увидеть, что символы экранируете на автомате, внимание к деталям библиотеки у вас не отнять.

Your problem is that you do not know how to use INNER JOIN - which is what you need in your case. It is purely an SQL question, nothing to do with pg-promise as such.

Но должна признать - приятно было увидеть, что символы экранируете на автомате, внимание к деталям библиотеки у вас не отнять.

:)

Вам нужно разобраться с тем что такое INNER JOIN и как его использовать, т.к. именно в этом у вас проблема, а не с библиотекой ;)

Если с английским не очень, есть StackOveflow.ru, Toster.ru и подобные на русском.

С inner join тоже пробовала, но результат возвращает странный. Примерно такой же как и в описанном мной случае. Извините, сутки без сна и не совсем точно описала проблему. Сейчас нашла информацию о том о row_to_json. Попробую так, может это решит проблему вложенных массивов. На стаке и в тостере не писала, так как "либо лыжи не едут, либо я идиот" и так как было два варианта - проблема с моим запросом или я неверно использую библиотеку. Решила, что раз вы достаточно активно отвечаете тут - хотела спросить тут. И исключить по возможности вариант неверного понимания библиотеки.
Извините. Просто действительно перепробовала и иннеры и все - не едут лыжи. С вставкой данных по итерациям разобралась, а вот с получением данных из связанных не могу. Попробую на свежую голову. Спасибо, что сжалились и ответили в каком направлении копать. Из всего, что я увидела на просторах у вас действительно самая лучшая библиотека.

SELECT
p._,
row_to_json(e._) as employee
FROM project p
INNER JOIN employee e USING(employee_id)

Если коротко, то вот оно - решение :) Теперь лыжи поехали

Вообще-то, все дынные всегда приходят как JSON.

Хм... Значит что-то я не так делаю. Ладно, буду дальше ковырять. Спасибо большое :)

I know this is and old question and is not related about bug issue, but vitaly-t, if you have time, can you look at my question on stack overflow?
https://stackoverflow.com/questions/46886955/pg-promise-nest-tables-results-when-selecting-from-multiple-tables

how do I display the results of the code in postman? answer no 9

Was this page helpful?
0 / 5 - 0 ratings

Related issues

vitaly-t picture vitaly-t  ·  3Comments

dzaman picture dzaman  ·  3Comments

ForbesLindesay picture ForbesLindesay  ·  3Comments

msjoshi picture msjoshi  ·  4Comments

leemhenson picture leemhenson  ·  5Comments