内连接语法

内连接语法

SELECT * FROM `mi_count_history` 

WHERE `mi_boardname` = (SELECT `mi_boardname` FROM `mi_count_history` WHERE `mi_username` LIKE "小明" limit 1,1)


因为不带limit 1,1返回很多数据,所以用limit

SELECT `mi_boardname` FROM `mi_count_history` WHERE `mi_username` LIKE "小明" limit 1,1

问题1: 请问这种携带 limit1,1转成内连接怎么写


问题2: 

假设用户小明 , 有多个部门

SELECT `mi_boardname` FROM `mi_count_history` WHERE `mi_username` LIKE "小明"

例如返回

--- 财务

--- 销售

返回不是一个字段 , 而是多个字段

问题 :查询与 小明 相同的部门员工都有谁 ,怎么写内连接




正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好,

1、先查询出来的名字为小明的第二个部门的数据表,与mi_count_history表做连接

select *  from mi_count_history e1 
join (SELECT * FROM mi_count_history WHERE mi_username LIKE "小明" limit 1,1) e2
on e1.mi_boardname = e2.mi_boardname;

​2、查询与小明相同部门的员工:两个表的连接条件为部门相等,同学可以根据课程中讲解的" 查询与SCOTT相同部门的员工"来书写该sql语句

select *  from mi_count_history e1 join mi_count_history e2 on e1.mi_boardname = e2.mi_boardname 
where e1.mi_username = "小明" and e2.mi_username != "小明";


  • qq_浮沉_34 提问者 #1
    能麻烦写一下,这两个sql执行顺序,感觉有点乱
    2021-01-13 11:06:37
  • 好帮手慕美 回复 提问者 qq_浮沉_34 #2

    同学,你好

    1、SELECT * FROM mi_count_history WHERE mi_username LIKE "小明" limit 1,1会查询出名小明的第二条记录,mi_count_history表与该表做内链接,链接条件为两个表的部门名称相等,因此会查询出与该部门相同的记录

    2、两个相同的mi_count_history表做链接,链接条件为两个表的部门名称相等并且e1表的姓名为小明,e2表的姓名不等于小明,即查询到的是与小明同部门的记录。

    ​查询与小明相同部门的员工与课程中讲解的" 查询与SCOTT相同部门的员工"原理是一样的,同学可以听下该视频的讲解。

    祝学习愉快~~~~


    2021-01-13 11:31:48
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师