PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak pobrać dane z wielu powiązanych tabel w Postgresie?

SELECT ROW_TO_JSON(T)
FROM    (
        SELECT t1.id,
               t1.name,
               array_to_json(array((
                 select case when t2.id is not null then row_to_json(t2) 
                             when t3.id is not null then row_to_json(t3) 
                             when t4.id is not null then row_to_json(t4) 
                        end
                 from   public.relation r 
                 LEFT JOIN public.table1 t2 on r.table2 = t2.id
                 LEFT JOIN public.table1 t3 on r.table3 = t3.id
                 LEFT JOIN public.table1 t4 on r.table4 = t4.id
                 where  r.table1 = t1.id
               ))) related_items
        FROM   public.table1 t1
       ) T



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dział ( / ) nie daje mojej odpowiedzi w postgresql

  2. Wybierz liczbę odpowiedzi MCQ na podstawie odpowiedzi na poprzednie pytanie

  3. Wkładka wielorzędowa z obietnicą pg

  4. Znak z kodowaniem UTF8 nie ma odpowiednika w WIN1252

  5. Jak warunkowo UPDATE/INSERT po DELETE, który nie znajduje wierszy?