mysql自连接

#自连接
SELECT
b.* from shopping as a,shopping as b where a.name='惠惠' and a.price<b.price order by b.id
#子查询
SELECT * FROM shopping 
WHERE price>(select price from 'shopping' where name='惠惠')
#子查询
SELECT e.ename,(SELECT ename FROM emp d WHERE d.empno=e.mgr) AS boss FROM emp e; 
#上面的是一张职员信息表,如果我要查询这张表中的每个职员的上司,那么必须使用自连接来查询.所以为了能实现这个查询,需要给这张表取两个别名,而且查询中所用的所有数据都需要加上表的别名前缀,因为两个表的数据列完全一样.

  

#选择指定员工的姓名,员工号,以及他的管理者的姓名和员工号,结果类似于下面的格式
employees   Emp     manager    Mgr
kochhar     101     king       100

SELECT e.last_name employees,e.`employee_id` "Emp#",m.last_name manager,m.employee_id "Mgr#"
FROM employees e
INNER JOIN employees m ON e.`manager_id`=m.employee_id
WHERE e.`last_name`='kochhar';

  

自连接是连接的一种用法,但并不是连接的一种类型,因为他的本质是把一张表当成两张表来使用。

mysql有时在信息查询时需要进行对自身连接(自连接),所以我们需要为表定义别名。

posted @ 2020-04-04 13:55  少年奶油喵  阅读(283)  评论(0编辑  收藏  举报