2、在连接到数据源对话框中,输入SQL Server的名称和登录信息,点击下一步。
3、在选择如何建立连接对话框中,选择使用特定的用户名和密码,输入数据库的用户名和密码,点击下一步。
4、在选择数据库和表对话框中,选择需要连接的数据库和表,点击下一步。
5、在编辑查询对话框中,输入SQL语句,将多个表联系起来。
6、点击确定按钮,Excel会自动执行SQL语句,并将结果显示在工作表中。
平时大多是执行单表查询,通常你把索引建好,让他尽可能走索引,性能都没问题。但其实也有不少的多表关联语句,因为有时查找目标数据,不得不借助多表关联的语法,才能实现你想要但使用多表关联的时候,你的SQL性能就可能会遇到一些问题。
若在FROM字句后直接来两个表名,就是要针对两个表进行查询,而且会把两个表的数据给关联,假设你未限定多表连接条件,可能会搞出一个笛卡尔积。所以通常都会在多表关联语句中的WHERE子句里引入一些关联条件:where t1.x1=xxx and t1.x2=t2.x2 and t2.x3=xxx
假设:
所以该SQL执行过程可能是:
他可能是先从一个表里查一波数据:驱动表
再根据这波数据去另外一个表里查一波数据进行关联,另外一个表叫:被驱动表
员工表包含id(主键)、name(姓名)、department(部门)
产品销售业绩表里包含id(主键)、employee_id(员工id)、产品名称(product_name)、销售业绩(saled_amount)。
现在要看每个员工对每个产品的销售业绩:
此时看到的数据:
全表扫描员工表,找出每个员工,然后针对每个员工的id去业绩表找 employee_id 跟员工id相等的数据,可能每个员工的id在业绩表里都会找到多条数据,因为他可能有多个产品的销售业绩。
然后把每个员工数据跟他在业绩表里找到的所有业绩数据都关联,比如:
内连接,inner join,要求两个表里的数据必须完全能关联上,才能返回。
假设员工表里有个人是新员工,入职到现在无销售业绩,此时还是希望能够查出来该员工的数据,只不过他的销售业绩那块可以给个NULL,表示无业绩。但若仅使用上述SQL语法,似乎搞不定,因为必须要两个表能关联上的数据才查得出来。
此时就需要
outer join,分为:
还有个语法限制,如果你是内连接,那连接条件可以放在where语句,但外连接一般是把连接条件放在ON语句:
一般写多表关联,主要就是内连接和外连接。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)