一、首先我们得先知道什么时候使用连接查询呢?

在我们所需要查询的数据不在同一张表格时,就需要我们使用到连接查询。

而连接查询就是将要查询的数据所在的表格连接成一张表格。

 

二、什么是内连接查询呢?

查询的信息来源于多张表格,就可以通过多表连接进行查询,一般适用于两张表格

1、内连接分3种:交叉连接,相等连接,自然连接

内连接的关键词:

CROSS  JOIN 或 JOIN,NATURAL  JOIN,ON则是连接表与表之间的条件

语法:SELECT  table(表名)/column(列名)/*   FROM  table1 JOIN  table2  ON  

table1.column1=table2.column2

等价于  

ELECT  table(表名)/column(列名)/*   FROM  table1,table2  where 

table1.column1=table2.column2

2、注意:column1,column2列名大多数时候基本相同,但也有不同,在不同时就要考虑是否符合逻辑

3、自然连接是一种比较特殊的连接,自然连接把两张表连接起来后会自动把重复的列删去,而普通的表不能

语法:SELECT   table(表名)/column(列名)/*   FROM   table1  NATURAL  JOIN  table2

 

三、什么是多表连接查询呢?

查询的信息来源于多张表格,就可以通过多表连接进行查询,一般适用于三张或三张以上的表格

1、多表连接的语法

SELECT   table(表名)/column(列名)/*   FROM   table1,table2,table3

   where  table1.column1=table2.column2  and  table2.column2=table3.column3

2、注意1:表与表两两连接之后是跟的and不是ON

注意2:column1,column2,column3列名大多数时候基本相同,但也有不同,在不同时就要考虑是否符合逻辑

注意3:写列名的时候要表名是在哪个表里,比如:table1.column1

 

四、那到底该如何使用呢?可以接着往下看

1、

goods表

Mysql 连表查询5000条数据 mysql的连表查询_表名

type表

Mysql 连表查询5000条数据 mysql的连表查询_表连接_02

 

Mysql 连表查询5000条数据 mysql的连表查询_表名_03

 那我们该如何把goods表和type表连接呈现出上面表所要的形式呢,首先我们可以分析是两张表连接,所以可以使用内连接方法,代入语法:

ELECT  table(表名)/column(列名)/*   FROM  table1,table2  where 

table1.column1=table2.column2

可得代码:

ELECT GoodsName 商品,TypeName 分类  FROM  goods,type  where
goods.TypeID=type.TypeID

2、

Mysql 连表查询5000条数据 mysql的连表查询_表名_04

 

接下来让我们从第一题更深入一点,在第一题的基础是增加量了分类和统计数量,那么提到这两个我们可以想到,分类用group  by 子句,统计数量我们可以用count()函数,那么我们可以从第一题的代码进行修改,从而得出代码:

ELECT  ypeName 分类,count(TypeName)   数量  FROM  goods,type  where
goods.TypeID=type.TypeID group by  数量

3、user表

Mysql 连表查询5000条数据 mysql的连表查询_表名_05

orders 表

Mysql 连表查询5000条数据 mysql的连表查询_Mysql 连表查询5000条数据_06

 ordersdetail表

Mysql 连表查询5000条数据 mysql的连表查询_表连接_07

 goods表

Mysql 连表查询5000条数据 mysql的连表查询_表名_08

Mysql 连表查询5000条数据 mysql的连表查询_Mysql 连表查询5000条数据_09

 

 第三题就比较难了,要连接四张表合成类似于最后一张表,所以我们分析得知要使用多表连接语法,那接下来让我们看看该怎么做,代入语法:

SELECT   table(表名)/column(列名)/*   FROM   table1,table2,table3

   WHERE  table1.column1=table2.column2  and  table2.column2=table3.column3

可得:

SELECT   user.name,orders.OrderDate,goods.GoodsName,ordersdetail.Quantity   
FROM   user,orders,goods,ordersdetail   
 WHERE
user.UserID=orders.UserID  and  ordes.OrdersID=ordersdetail.OrdersID  and 
ordersdetail.GoodsID=goods.GoodsID