mysql学习4:select基础---多表查询-1

前言:我也是在学习过程中,不对的地方请谅解

前言:我也是在学习过程中,不对的地方请谅解


回顾:

SELECT语句由以下列表中所述的几个子句组成:    SELECT之后是逗号分隔列或星号(*)的列表,表示要返回所有列。    FROM指定要查询数据的表或视图。    JOIN根据某些连接条件从其他表中获取数据。    WHERE过滤结果集中的行。    GROUP BY将一组行组合成小分组,并对每个小分组应用聚合函数。    HAVING过滤器基于    GROUP BY子句定义的小分组。    ORDER BY指定用于排序的列的列表。    LIMIT限制返回行的数量。

多表查询,顾名思义就是同时查询多个表。多表查询首先要知道各表中的关系。示例库关系图如下(传送门:下载导入示例库)

mysql学习4:select基础---多表查询-1

示例库关系图


多表查询语法:

mysql语法:select … from tb1 Join_Type tb2 [on (Join_Condition)]连接类型有:cross join,inner join,left join和right join等

1、cross join :交叉连接(不学,就是tb1 x tb2,以上是我自己理解的)

2、inner join:内连接:

条件比较连接:在连接条件中使用除等号(=)运算符之外的运算符,如>,>=,<,<=,<>等

mysql学习4:select基础---多表查询-1

内连接练习1---关系图

eg:查询表products中的MSRP和orderdetails表中的priceEach。条件是他们的productCode值相等的情况下。

mysqlmysql> use yiibaidb;mysql> show tables;mysql> select MSRP,priceEach from products inner join orderdetails on products.productCode=orderdetails.productCode limit 5;//解释一下,使用内连接查询products中的MSRP和orderdetails表中的priceEach。条件是是他们的productCode值相等的情况下。

mysql学习4:select基础---多表查询-1

内连接练习1

再练习一个

mysql学习4:select基础---多表查询-1

内连接联系2---关系图

select a.customerName,b.status from customers as a inner join orders as b on a.customerNumber=b.customerNumber limit 10;//查询客户姓名和他的订单状态。表customers中客户姓名,表orders中订单状态,这2个表总的用户编号信息是一致的。//解释上面的语句。查询a表中的客户姓名,b表中的状态,从哪个表,从表customers(比作a)和表orders(比作b),条件是这2个表中的客户id一致

mysql学习4:select基础---多表查询-1

内连接练习2

as这个我感觉很好用,还可以在输出的时候显示为想要的意思,因为并不是每个人都知道每个值的含义,比如下面这个。

select customerName as 客户姓名 from customers limit 5;

mysql学习4:select基础---多表查询-1

3、left/right join 外连接;

下面是直接的解释(读不懂没关系,看图就懂了)

LEFT JOIN(左连接):取得左表(table1)完全记录,即是右表(table2)并无对应匹配记录。

mysql学习4:select基础---多表查询-1

left join

RIGHT JOIN(右连接):与 LEFT JOIN 相反,取得右表(table2)完全记录,即是左表(table1)并无匹配对应记录。

mysql学习4:select基础---多表查询-1

right join

练习:先接受外连接概念,下一节练习的时候详细说一下,有点绕,弄了好久才明白

上一篇文章:《mysql学习3:select基础---单表查询》

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/94653.html

(0)

相关推荐