PostgreSQL Tutorial PostgreSQL Advanced PostgreSQL Database Account Management PostgreSQL References
PostgreSQL Tutorial PostgreSQL Advanced PostgreSQL Database Account Management PostgreSQL References

PostgreSQL UNION ALL Keyword



The PostgreSQL UNION ALL keyword is used to combine the result-set of two or more SELECT statements. While using UNION ALL keyword, the following criteria must be satisfied:

  • Number of columns in each SELECT statement should equal.
  • Datatype of columns in each SELECT statement should match.
  • Order of columns in each SELECT statement should match.

Syntax

The syntax for using UNION ALL keyword in PostgreSQL is given below:

SELECT column1, column2, ... FROM table1
UNION ALL
SELECT column1, column2, ... FROM table2

Note: UNION ALL keyword combines all values (allows duplicate values). To combine only distinct values, UNION keyword can be used.

Example:

Consider database tables called Employee and Vendor with the following records:

Table 1: Employee table

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryLondon242750
3JoParis272800

Table 2: Vendor table

VendorIDNameCityAge
1JohnLondon29
2RameshNew Delhi28
3SureshNew Delhi31

  • To fetch all cities from tables Employee and Vendor, the query is given below:

    SELECT City FROM Employee
    UNION ALL
    SELECT City FROM Vendor
    ORDER BY City;
    

    This result of the above code will be:

    City
    London
    London
    London
    New Delhi
    New Delhi
    Paris
  • Using with WHERE clause: To fetch all names and cities from tables Employee and Vendor where age of the person is less than 30, the following query can be used:

    SELECT Name, City FROM Employee
    WHERE Age < 30
    UNION ALL
    SELECT Name, City FROM Vendor
    WHERE Age < 30
    ORDER BY City;
    

    This will produce the result as shown below:

    NameCity
    JohnLondon
    MarryLondon
    JohnLondon
    RameshNew Delhi
    JoParis
  • Using Alias: Using alias is a good way to identify records of different tables. See the example below:

    SELECT 'Employee' AS Type, Name, City FROM Employee
    WHERE Age < 30
    UNION ALL
    SELECT 'Vendor', Name, City FROM Vendor
    WHERE Age < 30
    ORDER BY City;
    

    This will produce the result as shown below:

    TypeNameCity
    EmployeeJohnLondon
    EmployeeMarryLondon
    VendorJohnLondon
    VendorRameshNew Delhi
    EmployeeJoParis

❮ PostgreSQL Keywords