sql左连接条件
㈠ sql左连接怎么加条件、、、
应该加在语句的最后面,作为全局条件,他是指向整条语句的,先连接再计算条件,有个优先级的。
语句写法为:
Select [列1],[列2] from A left Join B on A.[列1]=B.[列5] where A.[列2]<>'张三';
㈡ sql左连接和右连接什么情况使用
假设a表有两个字段,Aid、name,
b
表也有两字段
Bid,nameid
其中
nameid是Aid在b
表中的外键。
a表有数据如下:
Aid
name
1
a
2
b
3
c
b表有数据如下:
Bid
nameid
1
1
2
1
3
1
4
2
5
2
用左连接,就是以左边那个表为标准,左边那表(表a)的所有记录必须得全部出现,例如:
select
*
from
a
left
join
b
on
a.Aid=b.nameid
结果应应该为:
Aid
name
Bid
nameid
1
a
1
1
1
a
2
1
1
a
3
1
2
b
4
2
2
b
5
2
3
c
NULL
NULL
表a
的
Aid为1的出现了三次,Aid为2的出现了两次,Aid为3的出现了一次,全部都出现了。但因为在表b中没有以Aid为3对应的记录,所以用null来填充。
同样道理,用右连接,就是以右边那个表为标准,
例如:select
*
from
a
right
join
b
on
a.Aid=b.nameid
结果应该为:
Aid
name
Bid
nameid
1
a
1
1
1
a
2
1
1
a
3
1
2
b
4
2
2
b
5
2
表b的记录必须全部出现,但没有出现
a表中Aid为3的记录,是因为b表中没有以之对应的记录,而且此时是以b表为标准的。
㈢ sql带条件的左连接
sql带条件的左连接应加在语句的最后面,作为全局条件,他是指向整条语句的,先连接再计算条件,有个优先级的。
语句写法为:
Select [列1],[列2] from A left Join B on A.[列1]=B.[列5] where A.[列2]<>'张三';