1demo建表
--
人事表
CREATE TABLE
Man(
Man_Id
TINYINT
,
Man_Name
VARCHAR
(
10
),
Zw_Id
TINYINT
);
--
职务表
CREATE TABLE
Zw(
Zw_Id
TINYINT
,
Zw_Name
VARCHAR
(
10
));
--
工资表
CREATE TABLE
GZ(
Man_Id
TINYINT
,
Money
VARCHAR
(
10
),
Sex_Id
TINYINT
);
--
性别表
CREATE TABLE
xb(
Sex_Id
TINYINT
,
Sex_Name
VARCHAR
(
10
));
插入的数据
2_讨论多个left join之间的关系
1_SELECT
*
FROMgz g
LEFT JOIN xb x
ONg.
Sex_Id=x.
Sex_Id;
2_SELECT
*
FROMgz g
LEFT JOIN xb x
ONg.
Sex_Id=x.
Sex_Id
LEFT JOINzw z
ON x.
Sex_Id=z.
Zw_Id;
3_SELECT
*
FROMgz g
LEFT JOIN xb x
ONg.
Sex_Id=x.
Sex_Id
LEFT JOINzw z
ON g.
Sex_Id=z.
Zw_Id;
总结
多个left join 分析ABC 三表
当 A和B left join时 on的条件是表达A和B之间的关系的 ,紧接着在leftjoin C那么其实主要看on后面的条件.
ON 后是A和C之间的关系关联 那么 有可能在第一步A和B的交集不属于第二个A和C之间的交集所以会造成 图3中中间部分的null的产生, A + (A∩B)∩(A∩C)
同理图二最后出现的两个null 是因为 A和C 的交集 交上 B和C的交集只有一个结果 :A + (A∩B)∩(B∩C)
两种情况是不同的 ,所以在企业开发的时候需要注意!!