三分钟带你学习 《MySQL 连接查询》有关知识

(一)连接查询

连接是把不同表的记录连到一起的最普遍的方法,通过连接查询可将多个表作为一个表进行处理。连接查询分为内连接和外连接。

1.内连接

内连接是使用比较运算符对两个表中的列组合在一起,产生新的结果表。内连接分为3种:交叉连接,相等连接,自然连接。

内连接语法:SELECT fieldlist FROM table1 JOIN table2 ON table1.column1=table2.column2【where condition】

语法说明如下:

(1)fieldlist:table1表和table2表中的字段列。若取所有列,则用“*”。

(2)table1 JOIN table2:将table1表与table2表进行内连接。

(3)table1.column1=table2.column2:连接条件,其中column1和column2为table1表与table2表的关系列。

  (4)  "where condition"可省略,它为查询条件表达式。

a.查询每件商品的商品名和分类名

结果示例

分析:商品表goods与分类表type存在一个依据列--typeID。连接这两张表,使用内连接并采用商品名和分类名作为字段列表,SQL语句如下:

SELECT goodsName AS 商品,typeName as 分类 from goods JOIN type on goods.typeid=type.typeName

 

(二)多表连接查询

如果查询的信息来源于多张表,则可通过两两相连的方式建立多表连接查询。

三表连接查询的语法:SELECT fieldlist FROM table1 JOIN table2 ON table1.colum1=table2.column2_1 JOIN table3 ON table2.column2_2=table3.column3【where condition】

语法说明如下:

(1)table1与table2和table3两两相连。

(2)三表以上连接查询的方法与三表连接查询的方法一样,均是通过两两相连的方式实现。

b.查询每个订单是谁买的,什么时候买的,买了什么,买了多少个(花了多少钱)

结果示例

SQL语句如下:orderdetails JOIN goods ON orderdetails.goodsID=goods.goodsID JOIN orders ON orderdetails.orderID=order.orderID JOIN  user ON order.userID=user.userID

2.外连接

根据不同的外连接形式,外连接所生成的结果集中不仅包含符合条件的数据记录,还包含左表或右表或左右表中的所有数据记录。

外连接语法:SELECT 字段名称 FROM 表名1 LEFT|RIGHT|FULL[OUTER] OIN 表名2 ON 表名1.字段名1=表名2.字段名2

(1)左外连接:LEFT OUTER JOIN

总结:在查询的时候,以left join这个关键字左边的表为主表,会将这个表中的数据全部查询出来,如果右表中没有这条数据,则用NULL字段表示。

(2)右外连接:RIGHT OUTER JOIN

SELECT *FROM A right outer join B on条件;

总结:在查询的时候,会以right join这个关键字右边的表为主,然后将符合条件的查询出来,左表中没有的字段,使用NULL进行补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值