Я пытаюсь изучить Joins. Но когда я попробовал Full join на столе сотрудника и зарплаты, он терпит неудачу. Почему он терпит неудачу?Full Join In Mysql Fails
Я добавил результаты решения, размещенного только для справки.
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> выберите employee.eid, employee.ename, Salary.salary от работника ПОЛНОГО РЕГИСТРИРУЙТЕСЬ Зарплату ON employee.eid = Salary.eid; ОШИБКА 1054 (42S22): Неизвестный столбец 'employee.eid' в 'списке поля' тузд>
Update: После является результатом LEFT JOIN Союза Right Регистрация
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)
MySQL не поддерживает полные внешние соединения. –
Возможный дубликат [Full Outer Join in MySQL] (http://stackoverflow.com/questions/4796872/full-outer-join-in-mysql) –