Union in MySQL - MySQL Developer Tutorial

Union in MySQL 

MySQL Union operation is used to combine two or more result sets. Before you use UNION operator in MySQL or MariaDB, you need to remember couple of things.
UNION result set will be Distinct records. You don't have to use Distinct. If result sets have duplicate records, UNION will return only distinct records.

  1. When you combine two or more result sets, all the result sets should have the same number of columns.
  2. The data type of the columns of each result set should be compatible or same like other results set columns.

Syntax : 

Union in MySQL syntax


Select Column1,Column2,Column2 from TableOne
UNION
Select Column1,Column2,Column3 from TableTwo
UNION 
Select Column1,Column2,Column2 from TableThree



Example : 

Let's create couple of tables  by using below scripts and then we use Union operator.


CREATE TABLE `customer` (
  `idcustomer` int,
  `firstname` varchar(50)  NULL,
  `lastname` varchar(30)  NULL,
  `age` int(11) DEFAULT NULL,
  `phonenumber` char(11) DEFAULT NULL,
  `dob` date DEFAULT NULL,
  `gender` char(1) NOT NULL
) ;

insert into customer(idcustomer,firstname,lastname,age,phonenumber,dob,gender)
values
(1,'Raza','Ali',39,'505-4141969','1980-01-01','M'),
(2,'Aamir','Naz',39,'505-4141969','1980-01-01','M'),
(3,'Aamir','Shahzad',39,'505-4141900','1980-01-01','M'),
(4,'Aamir1','Shahzad',39,'505-4141900','1980-01-01','M'),
(5,'Robert','Ladson',69,'505-345900','1960-01-01','M');



create table customer4.

CREATE TABLE `customer4` (
  `idcustomer` int,
  `firstname` char(50)  NULL,
  `lastname` Nchar(30)  NULL,
  `age` int(3) DEFAULT NULL,
  `phonenumber` char(11) DEFAULT NULL,
  `dob` date DEFAULT NULL,
  `gender` char(1) NOT NULL
) ;

insert into customer(idcustomer,firstname,lastname,age,phonenumber,dob,gender)
values
(1,'Raza','Ali',39,'505-4141969','1980-01-01','M'),
(5,'Aamir','Naz',39,'505-4141969','1980-01-01','M')



Let's union combine the rows or customer and customer4 table.


select * from customer
UNION 
Select * from customer4;


MySQL Union 

Notice that in customer and customer4 some of the columns have different data types but it worked in UNION as the data is compatible.  Also Union returned distinct records in result set from two tables.