TA:
1,WANG
2,ZHANG
4,LI
TB:
1,100
2,200
3,400
1.left join 左连接--以左表为基准,右表中没值的,在结果集中以null值代替。(select * from TA left join TB where TA.ID=TB.ID)
1,WANG,100
2,ZHANG,200
4,NULL
2.right join 右连接--以右表为基准,左表中没值的,在结果集中以null值代替。(select * from TA right join TB where TA=TB)
1,WANG,100
2,ZHANG,200
3,NULL,400
3.inner join 内连接--查询左右表中都有键值内容做为结果集。 (select * from TA inner join TB where TA=TB)
1,WANG,100
2,ZHANG,200
备注: 内连接简写:select * from TA,TB WHERE TA.ID=TB.ID
【笛卡尔积】:
使用交叉联接
没有 WHERE 子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。下面是在sqlserver查询分析器中测试的结果:
select * from TA cross join TB
--下面的是另一种写法
select * from TA ,TB
1,WANG,100
2,ZHANG,100
4,NULL,100
1,WANG,200
2,ZHANG,200
4,NULL,200
1,WANG,400
2,ZHANG,400
4,NULL,400
即:以左边的表为准,前边一张表的记录分别与后一张表的每条记录结合。
如果将两张表反过来写select * from TB , TA 或者select * from TB cross join TA
1,100,WANG
2,200,WANG
3,400,WANG
1,100,ZHANG
2,200,ZHANG
3,400,ZHANG
1,100,LI
2,200,LI
3,400,LI
笛卡尔积的结果可能会产生重复记录。
TA:
1,WANG
2,ZHANG
3,NULL
TB:
1,100
2,200
3,NULL
4,NULL
TA*TB
SELECT * from TA,TB B(或SELECT * from TA CROSS JOIN TB)
1,WANG,100
2,ZHANG,100
3,NULL,100
1,WANG,200
2,ZHANG,200
3,NULL,200
1,WANG,
从网络上看到不少关于数据库远程访问配置的文章,给我的大体印象就是配置过程复杂冗余,有不少还是错误的配制方法,大多数都让人感觉费解,鉴于此,我自己根据实际操作,写了一个数据库远程访问的配置方法,力求简单有效。有对下面配置有疑问的可以留言,我将作出回答。
1. &nb ......