SQL:Join的测试和分析

Join的测试和分析

Join分为三种:inner Join,Left Join,right Join

首先,我觉得要知道一个概念:临时表或者说虚拟表,Join的作用就是生成一个虚拟表,因为我本身专业并不是计算机,更不是编程。所以走了很多弯路,直到用了很多次数据表的关系之后,才明白这个道理。

1,Inner Join

Select * from Table_A inner join Table_B on Table_A.Model = Table_B.Model

虚拟表如下,取决于左右表格Model相同的记录,虚拟表总行数=左右表格乘法累加SQL:Join的测试和分析xy=x1y1+x2y2+x3y3......

SQL:Join的测试和分析

 

2,Left Join:

SELECT fcst.*, bom.*, [BOM]![Qty]*[FCST]![Qty] AS REQ FROM fcst LEFT JOIN BOM ON BOM.Model = FCST.Model;

虚拟表结果如下图:

JOIN这个“单词”中左边全部出现在虚拟表中,右边无匹配时会:只列左,没有就空白,虚拟表行数=n+SQL:Join的测试和分析xy,n=仅存在于左表的记录

SQL:Join的测试和分析

3,right Join:

参考Right Join,需要注意的是Left join看左边Table_name,Right Join以右边Table_Name为主。

另外,ON的等于符号没有左右问题,可以A表=B表,也可以B表=A表

总之,对于像我这类初学者朋友,一定要有虚拟表格这个概念,否则SQL学起来好痛苦,希望大家少走弯路,别像我!