SQL Join(连接查询)

1.连接查询分为:

inner join(自然连接,自连接)

Left join(左连接)/Left outer join(左外连接):效果一样

Right join(右连接)/Right outer join(右外连接):效果一样

Full join(全连接)/Full outer join (全外连接)

2.大致语法如下:

select a.*,b.* from table_3 as b FULL join table_2 as a
on a.id=b.Mtype

--左连接

select a.*,b.* from table_3 as b left join table_2 as a
on a.id=b.Mtype

3.区别:

inner join(自然连接,自连接)

两个表只查找有关联的数据,例如主外键on a.id=b.id的数据,不满足的不查找

Left join(左连接)/Left outer join(左外连接):效果一样

两个表查找时以左边的表为主,例如A left join B 将查找A表所有数据,b表只查找满足条件的数据

Right join(右连接)/Right outer join(右外连接):效果一样

这个与Left join相反,与B表为主,显示全部B表数据

Full join(全连接)/Full outer join (全外连接)

这个是相当于A,B表的数据全部都显示出来,除两表满足条件以外的数据,其他都各占一行。

时间: 2024-10-11 05:03:13

SQL Join(连接查询)的相关文章

SQL表连接查询(inner join、full join、left join、right join)

前提条件:假设有两个表,一个是学生表,一个是学生成绩表. 表的数据有: 一.内连接-inner jion : 最常见的连接查询可能是这样,查出学生的名字和成绩: select s.name,m.mark from student s,mark m where s.id=m.studentid 上面就是我们最常见的inner join,即内连接,把符合student.id=mark.studentid 条件的元组才选出来,也可以写成: select s.name,m.mark from stude

SQL中的join连接查询

inner join(交集 ,自然连接, 简写成join) 是最普通的连接查询,相当于早期根据where条件连接的查询 outer join(并集或部分并集,左表 + 右表) left [outer] join(左表产生完全集,右表有则匹配,没有则为null) right [outer] join(右表产生完全集,左表有则匹配,没有则为null) full [outer] join(并集) cross join(笛卡尔积,左表 * 右表) 开发中基本不用

SQL表连接查询(inner join(join)、full join、left join、right join)

下面列出了您可以使用的 JOIN 类型,以及它们之间的差异. JOIN: 如果表中有至少一个匹配,则返回行(join=inner join) LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行 RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行 FULL JOIN: 只要其中一个表中存在匹配,就返回行 前提条件:假设有两个表,一个是学生表,一个是学生成绩表. 表的数据有: 一.内连接-inner jion : 最常见的连接查询可能是这样,查出学生的名字和成绩: sele

基本sql语句--连接查询

union 联合 union的作用:把两次或多次查询结果合并起来. 典型案例:select good_id,good_name from good where shop_price>5000 or shop_price<20; select good_id,good_name from good where shop_price>5000 union select good_id,good_name from good where shop_price<20; 1.union的要求

SQL 数据库 连接查询 变量、if else、while

一.连接查询:通过连接运算符可以实现多个表查询. 连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 常用的两个链接运算符: 1.join   on(左右连接) 2.union(上下连接)  注:只有在列的数据类型一致时才能够连接起来 二.变量 SQL语言也跟其他编程语言一样,拥有变量.分支.循环等控制语句. 在SQL语言里面把变量分为局部变量和全局变量,全局变量又称系统变量(@@). 局部变量: 使用declare关键字给变量声明,语法非常简单:declare @<

SQL JOIN连接分类[转]

1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符):包括相等联接和自然联接: 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行:    2.外联接.外联接可以是左向外联接.右向外联接或完整外部联接. 在 FROM子句中指定外联接时,可以由下列几组关键字中的一组指定: 1)LEFT  JOIN或LEFT OUTER JOIN     左向外联接的结果集包括  LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行.如果左表的某行在右表中没有匹配行,

关于left join连接查询 两张表里有同名字段的问题

左连接查询在开发中很常用,但有个问题常常会遇到,两个表中有同名字段时,比如左右表都有一个id字段,会造成查询结果中左表的id值被右表的id值覆盖掉(大部分php框架都是这个效果),而且还不会报错,容易留下隐蔽的bug!解决办法很简单,给同名字段用AS起别名.例如:order表,farmer表都含有id字段, $sql ="SELECT *,i.`id` AS sid from hr_users_identity as i left join hr_student as s on i.`user_

SQL 课程 连接查询

今天,我主要是对前面所学习过的子查询进行了复习,然后学习了连接查询join on 的内容. 如: select renyuan.code,name,age ,sex , bumen.bname,bceo from renyuan,bumen where renyuan.bc=bumen.bcode 将以上的查询语句写成连接查询: select renyuan.code,name,age ,sex , bumen.bname,bceo from renyuan join bumen on reny

Oracle学习之路-SQL篇-连接查询

一,连接查询: 1.内连接用的最多的连接查询,只返回表中符合条件的行.如: /***内连接***/ select j_c.*,j_sc.* from course j_c inner join sc j_sc on j_c.CNO = j_sc.CNO; 2.左外连接 左外连接:除了返回符合条件的行外,还返回左表中所有的行. /**************************左外连接**/ select j_c.*,j_sc.* from course j_c left join sc j_