sql >> Database >  >> RDS >> PostgreSQL

SQL - Maak een weergave van meerdere tabellen

Unie is niet wat je wilt. U wilt joins gebruiken om enkele rijen te maken. Het is een beetje onduidelijk wat een unieke rij in je tabellen is en hoe ze zich echt tot elkaar verhouden, en het is ook onduidelijk of een tabel rijen zal hebben voor elk land in elk jaar. Maar ik denk dat dit zal werken:

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

De linker (buitenste) join retourneert rijen van de eerste tafel, zelfs als er geen overeenkomsten zijn in de tweede. Ik heb dit geschreven in de veronderstelling dat je voor elk land een rij zou hebben voor elk jaar in de inkomenstabel. Als je dat niet doet, worden de dingen een beetje harig, omdat MySQL geen ingebouwde ondersteuning heeft voor FULL OUTER JOINs die ik laatst heb gecontroleerd. Er zijn manieren om het te simuleren, en daarbij zouden vakbonden betrokken zijn. Dit artikel gaat dieper in op het onderwerp:http://www.xaprb.com/blog/2006/05/26/how-to-write-full-outer-join-in-mysql/



  1. Hoe SET ROWCOUNT werkt in SQL Server

  2. Android - Gebruikersnaam weergeven uit sqlite-database na inloggen in textView

  3. HikariCP:met welke time-outs op databaseniveau moet rekening worden gehouden om maxLifetime voor Oracle 11g in te stellen?

  4. 3 manieren om de Modulo terug te sturen in MariaDB