I am trying to learn Joins. But when I tried Full join on employee and salary table it fail. Why is it failing?
I have added the results of the solution posted just for reference.
mysql> select * from employee;
+-----+---------+
| eid | ename |
+-----+---------+
| 1 | sampath |
| 2 | maclean |
| 3 | sudheer |
+-----+---------+
3 rows in set (0.00 sec)
mysql> select * from Salary;
+------+--------+------+
| sid | salary | eid |
+------+--------+------+
| 1001 | 5000 | 2 |
| 1002 | 70000 | 3 |
| 1003 | 70000 | 3 |
+------+--------+------+
3 rows in set (0.00 sec)
mysql> select employee.eid, employee.ename, Salary.salary from employee JOIN Salary on employee.eid=Salary.eid;
+-----+---------+--------+
| eid | ename | salary |
+-----+---------+--------+
| 2 | maclean | 5000 |
| 3 | sudheer | 70000 |
| 3 | sudheer | 70000 |
+-----+---------+--------+
3 rows in set (0.00 sec)
mysql> select employee.eid, employee.ename, Salary.salary from employee LEFT JOIN Salary ON employee.eid=Salary.eid;
+-----+---------+--------+
| eid | ename | salary |
+-----+---------+--------+
| 1 | sampath | NULL |
| 2 | maclean | 5000 |
| 3 | sudheer | 70000 |
| 3 | sudheer | 70000 |
+-----+---------+--------+
4 rows in set (0.00 sec)
mysql> select employee.eid, employee.ename, Salary.salary from employee RIGHT JOIN Salary ON employee.eid=Salary.eid;
+------+---------+--------+
| eid | ename | salary |
+------+---------+--------+
| 2 | maclean | 5000 |
| 3 | sudheer | 70000 |
| 3 | sudheer | 70000 |
+------+---------+--------+
3 rows in set (0.00 sec)
mysql> select employee.eid, employee.ename, Salary.salary from employee FULL JOIN Salary ON employee.eid=Salary.eid; ERROR 1054 (42S22): Unknown column 'employee.eid' in 'field list' mysql>
Update: Following is the result of Left Join Union Right Join
mysql> SELECT * FROM employee e
-> LEFT JOIN Salary s ON e.eid = s.eid
-> UNION
-> SELECT * FROM employee e
-> RIGHT JOIN Salary s ON e.eid = s.eid;
+------+---------+------+--------+------+
| eid | ename | sid | salary | eid |
+------+---------+------+--------+------+
| 1 | Rai | NULL | NULL | NULL |
| 2 | pinto | 1001 | 50000 | 2 |
| 3 | sudheer | 1002 | 70000 | 3 |
| 3 | sudheer | 1003 | 70000 | 3 |
+------+---------+------+--------+------+
4 rows in set (0.00 sec)