UNION does not return duplicate results (similar to the DISTINCT keyword).
mysql> You can override this by specifying that all results must be returned with the ALL keyword: mysql> mysql> CREATE TABLE customer ( -> id int(11) default NULL, -> first_name varchar(30) default NULL, -> surname varchar(40) default NULL -> ); Query OK, 0 rows affected (0.00 sec) mysql> mysql> INSERT INTO customer VALUES (1, 'Tom', 'Clegg'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO customer VALUES (2, 'Jack', 'Smith'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO customer VALUES (3, 'Will', 'Powers'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO customer VALUES (4, 'Peter', 'Miller'); Query OK, 1 row affected (0.00 sec) mysql> mysql> CREATE TABLE sales ( -> code int(11) default NULL, -> sales_rep int(11) default NULL, -> customer int(11) default NULL, -> value int(11) default NULL -> ); Query OK, 0 rows affected (0.00 sec) mysql> mysql> INSERT INTO sales VALUES (1, 1, 1, 2000); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO sales VALUES (2, 4, 3, 250); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO sales VALUES (3, 2, 3, 500); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO sales VALUES (4, 1, 4, 450); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO sales VALUES (5, 3, 1, 3800); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO sales VALUES (6, 1, 2, 500); Query OK, 1 row affected (0.00 sec) mysql> mysql> CREATE TABLE sales_rep ( -> employee_number int(11) default NULL, -> surname varchar(40) default NULL, -> first_name varchar(30) default NULL, -> commission tinyint(4) default NULL, -> date_joined date default NULL, -> birthday date default NULL -> ); Query OK, 0 rows affected (0.00 sec) mysql> mysql> INSERT INTO sales_rep VALUES (1, 'Ray', 'Sol', 10, '2000-02-15', '1976-03-18'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO sales_rep VALUES (2, 'Goal', 'Charlene', 15, '1998-07-09', '1958-11-30'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO sales_rep VALUES (3, 'Soy', 'Mike', 10, '2001-05-14', '1971-06-18'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO sales_rep VALUES (4, 'Ray', 'Mongane', 10, '2002-11-23', '1982-01-04'); Query OK, 1 row affected (0.00 sec) mysql> mysql> CREATE TABLE old_customer(id int, first_name varchar(30), surname varchar(40)); Query OK, 0 rows affected (0.01 sec) mysql> INSERT INTO old_customer VALUES (5432, 'Thulani', 'Salie'), (2342, 'Shahiem', 'Papo'); Query OK, 2 rows affected (0.00 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> mysql> SELECT id, first_name, surname FROM old_customer UNION SELECT -> id, first_name,surname FROM customer; +------+------------+---------+ | id | first_name | surname | +------+------------+---------+ | 5432 | Thulani | Salie | | 2342 | Shahiem | Papo | | 1 | Tom | Clegg | | 2 | Jack | Smith | | 3 | Will | Powers | | 4 | Peter | Miller | +------+------------+---------+ 6 rows in set (0.00 sec) mysql> mysql> mysql> mysql> drop table sales; Query OK, 0 rows affected (0.00 sec) mysql> drop table customer; Query OK, 0 rows affected (0.00 sec) mysql> drop table sales_rep; Query OK, 0 rows affected (0.00 sec) mysql> drop table old_customer; Query OK, 0 rows affected (0.00 sec) mysql>