Mysql连接查询

      在MySQL中,内连接(INNER JOIN)用于返回两个或多个表中的匹配行。内连接只返回两个表中满足连接条件的行。

1、内连接的语法如下:

SELECT 列名
FROM 表1
INNER JOIN 表2
ON 表1.列名 = 表2.列名;


select e.name,d.name from emp e inner join dept d on e.dept_id = d.id;

其中,表1表2是要进行连接的两个表,列名是要返回的列名,ON关键字后面是连接条件。

内连接查询使用INNER JOIN关键字来连接两个或多个表。连接条件通常是两个表之间的共同字段或相互关联的字段。使用内连接查询时,只有同时满足连接条件的行才会被返回。

内连接查询的工作原理是,首先对两个表进行笛卡尔积,即将两个表中的每一行都与另一个表中的每一行进行组合。然后,根据连接条件筛选出满足条件的行,以生成最终结果。

内连接查询可以用于多个表之间的联接,可以通过多个INNER JOIN子句连接更多的表。在连接多个表时,每个表之间都需要具有共同的连接条件。

     左连接查询使用LEFT JOIN语句来检索两个或多个表中的数据。左连接检索左边表中的所有行,同时根据指定的条件将右边表中的匹配行关联起来。

2、左连接语法如下:

SELECT 列名
FROM 左表
LEFT JOIN 右表
ON 左表.列名 = 右表.列名;


select e.*,d.name from emp e left join  dept d on e.dept_id = d.id;

   其中,左表右表是要连接的表,ON后面是连接条件。

左连接查询返回左边表中的所有行,不管右边表中是否有匹配行。如果右边表中没有匹配行,就返回NULL值。左连接查询常用于获取包含其他表中相关数据的结果集。

       右连接查询使用RIGHT JOIN语句来检索两个或多个表中的数据。右连接检索右边表中的所有行,并根据指定的条件将左边表中的匹配行关联起来。

3、右连接语法如下:

SELECT 列名
FROM 左表
RIGHT JOIN 右表
ON 左表.列名 = 右表.列名;

select d.*,e.* from emp e right join  dept d on e.dept_id = d.id;

        其中,左表右表是要连接的表,ON后面是连接条件。右连接查询返回右边表中的所有行,不管左边表中是否有匹配行。如果左边表中没有匹配行,就返回NULL值。右连接查询常用于获取包含某个表中所有记录的结果集,并且关联其他表中的匹配数据。

自连接是指在同一张表中进行连接查询的操作。自连接允许我们将表中的数据与表中的其他行进行比较和关联。自连接通常用于解决需要比较同一表中的不同行之间的关系的问题,例如在只有一张表中存储了员工和他们的经理的信息时,我们可能需要查询每个员工的名字以及他们的经理的名字。要进行自连接查询,我们需要给表中的不同行指定不同的别名,以区分它们。然后,我们可以使用这些别名来指定连接条件。

4、自连接语法如下:

/*表emp分别起别名a   和  b*/
select a.name,b.name from emp a,emp b where a.managerid=b.id;


select a.name  '员工',b.name '领导' from emp a left join emp b on a.managerid=b.id;

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值