【SQL学习笔记3】JOIN连接

JOIN:通过引用两个或者两个以上的表,从而获取数据。

***实际应用过程中应尽量使用小表join大表,join查询时应注意的点:

-- 只支持等值连接
SELECT a.* FROM a JOIN b ON (a.id = b.id)
   
SELECT a.* FROM a JOIN b 
ON (a.id = b.id AND a.department = b.department)
   
-- 可以 join 多个表
SELECT a.val, b.val, c.val FROM a JOIN b 
ON (a.key = b.key1) JOIN c ON (c.key = b.key2)

JOIN有以下几种用法:

1.(INNER)JOIN:表中至少有一个行匹配,才会返回相应的行,否则不返回:

如下,返回所有同学的语文成绩,如果没有语文成绩则不返回该同学姓名:

select stu_name,grade from
student
join
(select stu_id,grade from course 
join 
grade
on grade.stu_id=course.stu_id
where couname='语文') as a
on student.stu_id=a.stu_id;

2.LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行:

如下:返回所有同学的语文成绩,如果没有语文成绩则只返回该同学姓名

select stu_name,grade 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值