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

SQL — Utwórz widok z wielu tabel

Unia nie jest tym, czego chcesz. Chcesz używać sprzężeń do tworzenia pojedynczych wierszy. Nie jest jasne, co stanowi unikalny wiersz w twoich tabelach i jak naprawdę są one ze sobą powiązane, a także nie jest jasne, czy jedna tabela będzie miała wiersze dla każdego kraju w każdym roku. Ale myślę, że to zadziała:

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
);

Złączenie lewe (zewnętrzne) zwróci wiersze z pierwszej tabeli, nawet jeśli nie ma dopasowań w drugiej. Napisałem to przy założeniu, że w tabeli dochodów miałbyś wiersz dla każdego kraju dla każdego roku. Jeśli tego nie zrobisz, sprawy stają się trochę nieostre, ponieważ MySQL nie ma wbudowanej obsługi połączeń FULL OUTER JOIN, które ostatnio sprawdzałem. Są sposoby na to, by to zasymulować i obejmowałyby związki. Ten artykuł szczegółowo omawia ten temat: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. 8 nowych funkcji zgodności z Oracle w EnterpriseDB PPAS 9.2 Beta

  2. Jak wymusić ocenę podzapytania przed dołączeniem / zepchnięciem na zagraniczny serwer?

  3. Jak zaktualizować PostgreSQL 11 do PostgreSQL 12 bez przestojów?

  4. Napraw „BŁĄD:brak wpisu klauzuli FROM dla tabeli” w PostgreSQL podczas korzystania z UNION, EXCEPT lub INTERSECT

  5. Jak zaimportować zrzut Heroku PG na komputer lokalny?