Объяснить себя Присоединиться - PullRequest
3 голосов
/ 12 ноября 2011

Я пытался понять самостоятельное изучение в Интернете, но не смог найти удовлетворительного объяснения. Кто-нибудь может объяснить это примером, например, где его использовать и зачем его использовать? было бы неплохо, если бы вы могли объяснить это с помощью запроса.

Ответы [ 6 ]

6 голосов
/ 12 ноября 2011

Страница Wikipedia Join (SQL) содержит специальную запись о самосоединении , включая пример.

В качестве другого примера, предположим, что у вас есть таблица Person со столбцами Idи ParentId для указания происхождения, вы можете сделать что-то вроде:

SELECT parent.Name, child.Name
FROM Person parent
INNER JOIN Person child ON parent.Id = child.ParentId
3 голосов
/ 12 ноября 2011

Причины использования самости присоединяются ко мне в иерархии.

Например: у вас есть все сотрудники в таблице.У каждого сотрудника есть менеджер.Таким образом, вы можете связать сотрудника с его менеджером.

Таблица emp (loyee).cols emp_id, менеджер, имя

, чтобы вы могли собрать всех сотрудников вместе с именем менеджера

select e.name employeename, m.name managername 
from emp e, emp m where e.manager = m.emp_id
1 голос
/ 12 ноября 2011

Одна из причин, по которой вы хотите присоединиться самостоятельно, - найти дубликаты в вашей таблице. Скажем, вы хотите найти людей с одинаковыми именами в вашей таблице, вы можете сделать это следующим образом:

SELECT table1.name FROM people AS table1 , people AS table2 
WHERE table1.name = table2.name
AND table1.id != table2.id
0 голосов
/ 13 июля 2017

SELF JOIN?

Например, мы берем эту таблицу enter image description here

SELECT CONCAT (m.name, ',', m.email) AS 'manager ', CONCAT (e.name,', ', e.email) AS' reporter 'из коллажа e ПРИСОЕДИНЯЙТЕСЬ коллаж m ON m.emp_id = e.role_id;

enter image description here

0 голосов
/ 12 ноября 2011

Самостоятельное объединение предоставляет администратору мощный метод централизации реляционных данных в одной таблице.Фактически, самостоятельное объединение выполняется путем соединения определенной таблицы с самим собой.См
http://www.devshed.com/c/a/MySQL/MySQL-Table-Joins/4/

0 голосов
/ 12 ноября 2011

Это то же самое, что и обычное соединение с копией самой таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...