PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

SQL - Създаване на изглед от множество таблици

Съюзът не е това, което искате. Искате да използвате съединения за създаване на единични редове. Малко не е ясно какво представлява уникален ред във вашите таблици и как те наистина се свързват помежду си, а също така не е ясно дали една таблица ще има редове за всяка страна всяка година. Но мисля, че това ще работи:

CREATE VIEW V AS (

  SELECT i.country,i.year,p.pop,f.food,i.income FROM
    INCOME i
  LEFT JOIN 
    POP p 
  ON
    i.country=p.country
  LEFT JOIN
    Food f
  ON 
    i.country=f.country
  WHERE 
    i.year=p.year
  AND
    i.year=f.year
);

Лявото (външно) присъединяване ще върне редове от първата таблица, дори ако няма съвпадения във втората. Написах това, предполагайки, че ще имате ред за всяка страна за всяка година в таблицата на доходите. Ако не, нещата стават малко космати, тъй като MySQL няма вградена поддръжка за ПЪЛНИ ВЪНШНИ ПРИСЪЕДИНЕНИЯ последно, което проверих. Има начини да се симулира и те ще включват синдикати. Тази статия навлиза в известна дълбочина по темата:http://www.xaprb.com/blog/2006/05/26/how-to-write-full-outer-join-in-mysql/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да конвертирате Unix Timestamp в стойност на дата/час в PostgreSQL

  2. Как да разбера кой дял ще се използва при разделяне на хеш на Postgres?

  3. Инсталиране на postgresql с NSIS

  4. Възможно ли е да се предоставят параметри за името на таблица или колона в Prepared Statements или QueryRunner.update()?

  5. Параметризирани заявки с psycopg2 / Python DB-API и PostgreSQL