首页 / MYSQL / mysql – 了解自我加入
mysql – 了解自我加入
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 了解自我加入,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2841字,纯文字阅读大概需要5分钟。
内容图文
我正在练习自我加入,这是我在编写查询时不理解的事情.
我有一张桌子’员工’
employee表包含三条记录.
+-----+---------------+------------+
| id | employee | manager_id |
+-----+---------------+------------+
| 1 | Ola | NULL |
| 2 | Ahmed | 1 |
| 3 | Tove | 1 |
+----------+----------+------------+
最后一列manager_id指的是第一列id,他是Ahmed和Tove的Ola经理.
如果我写的查询像
SELECT emp.employee as NAME, manager.employee as MANAGER
FROM employee as emp, employee as manager
WHERE emp.id = manager.manager_id
结果使艾哈迈德和托夫经理.
而
SELECT emp.employee as NAME, manager.employee as MANAGER
FROM employee as emp, employee as manager
WHERE manager.id = emp.manager_id
使它正确,有人可以解释一下吗?
解决方法:
自联接就像一个内部联接,其中同一个表的两个或多个实例通过公共数据类型列/字段连接在一起.这种连接(内连接)根据连接条件给出公共行.
employee表包含三条记录.在这种情况下,
员工为emp:
+-----+---------------+------------+
| id | employee | manager_id |
+-----+---------------+------------+
| 1 | Ola | NULL |
| 2 | Ahmed | 1 |
| 3 | Tove | 1 |
+----------+----------+------------+
员工担任经理:
+-----+---------------+------------+
| id | employee | manager_id |
+-----+---------------+------------+
| 1 | Ola | NULL |
| 2 | Ahmed | 1 |
| 3 | Tove | 1 |
+----------+----------+------------+
现在第一个案例:让我们尝试这个来理解差异:
SELECT emp.*,经理.*
员工为emp,员工为经理
WHERE emp.id = manager.manager_id
+-----+---------------+------------+-----+---------------+------------+
| id | employee | manager_id | id | employee | manager_id |
+-----+---------------+------------+-----+---------------+------------+
| 1 | Ola | NULL | 2 | Ahmed | 1 |
| 1 | Ola | NULL | 3 | Tove | 1 |
+----------+----------+------------+----------+----------+------------+
请参阅emp.id = manager.manager_id.因此,作为NAME的emp.employee从第一个表&给出了Ola行.作为经理的manager.employee给了Ahmed&从第二张桌子的托夫.
现在第二个案例:让我们试试这个来理解它们的区别:
SELECT emp.*,经理.*
员工为emp,员工为经理
WHERE manager.id = emp.manager_id
+-----+---------------+------------+-----+---------------+------------+
| id | employee | manager_id | id | employee | manager_id |
+-----+---------------+------------+-----+---------------+------------+
| 2 | Ahmed | 1 | 1 | Ola | NULL |
| 3 | Tove | 1 | 1 | Ola | NULL |
+----------+----------+------------+----------+----------+------------+
请参阅manager.id = emp.manager_id.因此,作为NAME的emp.employee给出了Ahmed&的行.第一桌和第二桌manager.employee作为MANAGER从第二个表中给出Ola行.
内容总结
以上是互联网集市为您收集整理的mysql – 了解自我加入全部内容,希望文章能够帮你解决mysql – 了解自我加入所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。