PostgreSQL UNION
klausul /operatør brukes for å kombinere resultatene av to eller flere SELECT-setninger uten å returnere eventuelle like rader
For å bruke UNION, hver velger, må. har samme antall kolonner er valgt, samme antall kolonneuttrykk, samme datatype, og ha dem i samme rekkefølge, men de trenger ikke å være av samme lengde
Syntax.
< p> Den grunnleggende syntaks UNION
er som følger:
VELG COLUMN1 [, COLUMN2] Fra table1 [, table2] [WHERE betingelse] UNIONSELECT COLUMN1 [, COLUMN2] Fra table1 [, table2] [HVOR betingelse]
Her gitt tilstand kan være et gitt uttrykk basert på kravet
Eksempel:.
Tenk følgende to tabeller, (a) COMPANY tabellen er som følger:
testdb = # SELECT * fra selskapet; id | Navn | alder | adressere | lønn ---- + ------- + ----- + ----------- + -------- 1 | Paul | 32 | California | 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norge | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | Sør-Hall | 45000 7 | James | 24 | Houston | 10000 (7 p)
(b) En annen tabell er DEPARTMENT som følger:
testdb = # SELECT * fra DEPARTMENT; id | tjenesten | emp_id ---- + ------------- + -------- 1 | IT Billing | 1 2 | Engineering | 2 3 | Finance | 7 4 | Engineering | 3 5 | Finance | 4 6 | Engineering | 5 7 | Finance | 6 (7 p)
Nå la oss bli med disse to tabeller ved hjelp SELECT uttalelse sammen med UNION klausul som følger:
testdb = # SELECT EMP_ID, NAVN, DEPT fra selskap INNER JOIN DEPARTMENT PÅ COMPANY.ID = DEPARTMENT.EMP_ID UNION SELECT EMP_ID, NAVN, DEPT fra selskap VENSTRE YTRE BLI DEPARTMENT PÅ COMPANY.ID = DEPARTMENT.EMP_ID;
Dette vil gi følgende resultat:
emp_id | Navn | DEPT -------- + ------- + -------------- 5 | David | Engineering 6 | Kim | Finance 2 | Allen | Engineering 3 | Teddy | Engineering 4 | Mark | Finance 1 | Paul | IT Billing 7 | James | Finance (7 p)
Den UNION ALL Klausul:
UNION ALL operatør brukes til å kombinere resultatene av to SELECT-setninger inkludert dupliserte rader. De samme reglene som gjelder for UNION gjelde for UNION ALL operatør samt
Syntax.
Den grunnleggende syntaks UNION ALL
er som følger:
VELG COLUMN1 [, COLUMN2] Fra table1 [, table2] [WHERE betingelse] UNION ALLSELECT COLUMN1 [, COLUMN2] Fra table1 [, table2] [WHERE betingelse]
Her gitt tilstanden kan bli et gitt uttrykk basert på kravet ditt.
Eksempel:
Nå, la oss bli med ovennevnte to bord i vår SELECT-setning som følger:
testdb = # SELECT EMP_ID, NAVN, DEPT fra selskap INNER JOIN DEPARTMENT PÅ COMPANY.ID = DEPARTMENT.EMP_ID UNION ALL SELECT EMP_ID, NAVN, DEPT fra selskap VENSTRE YTRE BLI DEPARTMENT PÅ COMPANY.ID = DEPARTMENT.EMP_ID;
Dette vil gi følgende resultat:
emp_id | Navn | DEPT -------- + ------- + -------------- 1 | Paul | IT Billing 2 | Allen | Engineering 7 | James | Finans 3 | Teddy | Engineering 4 | Mark | Finans 5 | David | Engineering 6 | Kim | Finance 1 | Paul | IT Billing 2 | Allen | Engineering 7 | James | Finans 3 | Teddy | Engineering 4 | Mark | Finans 5 | David | Engineering 6 | Kim | Finance (14 p)