你知道哪几种MYSQL的连接查询

连接(join)查询是将两个查询的结果以“横向对接”的方式合并起来的结果,这篇文章主要给大家介绍了关于MYSQL连接查询的相关资料,需要的朋友可以参考下

前言

查询信息的来源如果来自多张表,则必须对这些表进行连接查询。连接是把不同表的记录连到一起的最普遍的方法,通过连接查询可将多个表作为一个表进行处理。连接查询分为内连接和外连接。

一,交叉连接

交叉连接,又称“笛卡尔连接”或“叉乘”,它是所有类型的内连接的基础。

示例:实现线路表与车辆表,其语句如下:

?

1

`slelect*from line CROSS JOIN vehicle 等价于:select*from line,vehicle

二,内连接

内连接是应用程序中非常常见的连接操作,它一般都是默认的连接类型。

语法如下:

?

1

2

SElECT fieldlist FROM table1 【INNER】JOIN table2 ON

table1.column1=table2.column2 【where condition】

三,自然连接

自然连接是一种特殊的内连接,它要求相连的两张表的依据列必须是相同字段(字段名相同,字段属性相同)。
语法如下:

?

1

select fieldlist FROM table1 NATURAL JOIN table2 【where condition】

四,多表连接查询

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

三表连接查询语法如下:

?

1

2

3

SELECT fieldllist FROM table1 JOIN table2 ON

tabke1.column1=table.column2_1 JOIN table3 on

table2.column2_2=table.column3【where condition】

如果在FROM子句中,直接列出所有要连接的表,然后在WHERE子句中指定连接条件,此为简单多表查询,它与内连接功能相同。

使用两表连接查询语法格式如下:

?

1

2

SELECT fieldlist FROM table1, table2

HERE table1.column1=table2.column2 【and其他条件】

五,外连接

在内连接查询中,只有满足连接条件的记录才能出现在查询结果中。但在实际血用中,如果秀望不满足连接条件的记录也在查询结果中出现,这时需要使用外连接查询。外连接分左外连接和右外连接。

语法如下:

?

1

`SELECT字段名称FROM表名1 LEFT|RIGHT|FULL [OUTER] JOIN 表名2 ON 表名1.字段名1=表名2.字段名2`

1,左外连接

在外连接的结果集包括左表的所有记录和右表中满足连接条件的记录,结果集中那些不符合连接条件的来源于表的列值为nullo。

2,右外连接

右外连接是左外连接的反向连接。右外连接的结果集包括右表的所有记录和左表中满足连换条件的记象,结果集中那些不符合连接条件的来源于左表的列值为nullo。

作业:

获取所有非空调车的车牌号、型号和司机姓名、所属线路的线路号、起点站和终点站信息;

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

SELECT

v.plateNO 车牌号,

v.model 型号,

d. NAME 司机姓名,

l.lineNo 线路号,

l.from_station 起点站,

l.end_station 终点站

FROM

line l,

vehicle v,

driver d

WHERE

v.type = '非空调车'

AND l.lineID = v.lineID

AND d.driverID = v.driverID;

获取公交二公司所有司机信息。要求输出司机姓名、身份证、性别和电话;

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

SELECT

NAME 司机姓名,

licenseNO 身份证,

d.gender 性别,

phone 电话

FROM

vehicle v,

driver d,

line l

WHERE

v.driverID = d.driverID

AND v.lineID = l.lineID

AND company = '公交二公司'

GROUP BY

查询所有非空调车的车牌号、型号、线路号、起点站和终点站;

?

1

2

3

4

5

6

7

8

9

10

11

12

SELECT

v.plateNO 车牌号,

v.model 型号,

l.lineNo 线路号,

l.from_station 起点站,

l.end_station 终点站

FROM

line l,

vehicle v

WHERE

v.type = '非空调车'

AND l.lineID = v.lineID;

显示所有线路及其所配车辆基本信息,并查询车辆所配司机相关信息,要求输出司机姓名、性别、电话、车牌号、型号、线路号、起点站和终点站;

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

SELECT

d.NAME 司机姓名,

licenseNO 身份证,

d.gender 性别,

phone 电话,

v.plateNO 车牌号,

v.model 型号,

l.lineNo 线路号,

l.from_station 起点站,

l.end_station 终点站

FROM

vehicle v,

driver d,

line l

WHERE

v.driverID = d.driverID

AND v.lineID = l.lineID

GROUP BY 司机姓名;

6.获取订单 ID 为 4 的订购明细信息,要求输出商品名、单价和件数。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

SELECT

c.cName 客户姓名,

o.ordersDate 下单日期,

g.goodsName 商品名,

g.unitPrice 单价,

od.quantity 件数

FROM

ordersdetail od,

goods g,

orders o,

customer c

WHERE

c.cName = '王传华'

AND c.customerID = o.customerID

AND o.ordersID = od.ordersID

AND od.goodsID = g.goodsID;

获取客户“王传华”所下订单详细信息,要求显示客户姓名、订单 ID、下单日期、商品名、单价和件数。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

SELECT

c.cName 客户姓名,

o.ordersDate 下单日期,

g.goodsName 商品名,

g.unitPrice 单价,

od.quantity 件数

FROM

ordersdetail od,

goods g,

orders o,

customer c

WHERE

c.cName = '王传华'

AND c.customerID = o.customerID

AND o.ordersID = od.ordersID

AND od.goodsID = g.goodsID;

使用左接获取所有客户的基本信息以及订购信息,要求输出客户姓名、电话、订单 ID 和下单时间。

?

1

2

3

4

5

6

7

8

SELECT

c.cName 客户姓名,

c.phone 电话,

o.ordersID 订单ID,

o.ordersDate 下单时间

FROM

customer c

LEFT JOIN orders o on c.customerID=o.customerID;

8.使用右接获取所有客户的基本信息以及订购信息,要求输出客户姓名、电话、订单 ID 和下单时间。

?

1

2

3

4

5

6

7

8

SELECT

c.cName 客户姓名,

c.phone 电话,

o.ordersID 订单ID,

o.ordersDate 下单时间

FROM

orders o

right JOIN customer c on c.customerID=o.customerID;

总结

到此这篇关于MYSQL连接查询的文章就介绍到这了,更多相关MYSQL连接查询内容请搜索钦钦技术栈以前的文章或继续浏览下面的相关文章希望大家以后多多支持钦钦技术栈!

原文链接:https://blog.csdn.net/weixin_58861849/article/details/117451717

版权声明:本文(即:原文链接:https://www.qin1qin.com/catagory/7097/)内容由互联网用户自发投稿贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 630367839@qq.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022-07-31 3:33:15
下一篇 2022-07-31 3:33:27

软件定制开发公司

相关阅读

发表回复

登录后才能评论
通知:禁止投稿所有关于虚拟货币,币圈类相关文章,发现立即永久封锁账户ID!