是的,你执行一下下面的具体看个例子。(例子随便写的,可能不代表业务含义)
create table t_fact_khjytj_y
(
yf number(6),
khh char(12),
jyl number(16,2)
);
create table t_base_khxx
(
khh char(12),
khxm varchar2(20),
xb char(1)
);
insert into T_BASE_KHXX (KHH, KHXM, XB)
values ('001012345678', '张三', '1');
insert into T_BASE_KHXX (KHH, KHXM, XB)
values ('001012345679', '陈美', '2');
commit;
insert into T_FACT_KHJYTJ_Y (YF, KHH, JYL)
values (201112, '001012345678', 1234.56);
insert into T_FACT_KHJYTJ_Y (YF, KHH, JYL)
values (201201, '001012345678', 567.23);
commit;
--计算201112月份,女员工XB=2 的交易量:看下两种的差别
SELECT SUM(JYL)
FROM T_FACT_KHJYTJ_Y T1
LEFT JOIN T_BASE_KHXX T2 ON T1.KHH = T2.KHH
AND T2.XB = 2
WHERE YF = 201112;
SELECT SUM(JYL)
FROM T_FACT_KHJYTJ_Y T1
LEFT JOIN T_BASE_KHXX T2 ON T1.KHH = T2.KHH
WHERE YF = 201112 AND T2.XB=2;
总之,T2表的约束条件尽量在ON里写,因为ON关联后再约束T2表的话可能丢东西。T1表的基本上写在ON或WHERE哪里都行。
对了我这个是ORACLE的,同是SQL范畴,MYSQL应该差不多。