百分求 多个表左连接 语法

来源:百度知道 编辑:UC知道 时间:2024/05/28 08:15:05
我现在有n个表已经左连接在一起
另外还有一个表 也要左联在上面 但是这个表分别与连接好的其中三个表有外键关系
也就是说左联在前面那个大集合 并且有三个判断条件 任意一个不满足都要加一个空记录在上面
求SQL 写法
谢谢
现在是
select * from t1 left join t2 on t1.id=t2.id left join t3 on t2.id=t3.id
我想让
t4 left join (t1+t2+t3) on (t4.a=t1.a and t4.b=t2.b and t4.c=t3.c)

正确的写法是这样的:
select * from
t4 left join t1 on t4.a=t1.a
left join t2 on t4.b=t2.b and t1.id=t2.id
left join t3 on t4.c=t3.c and t2.id=t3.id

建议你

select T1.* FROM T1 LEFT JION (
select T1.A from T1, T2, T3 where t1.a = t2.a and t2.a = t3.a
) TMP ON T1.A = TMP.A
建议这种形势吧 速度快效率也好一点
当然需要的字段根据自己需要增加吧

看了上边兄弟 ()内部用了外联结,这个似乎不对吧

()里边用外联结 表示 t3只要有一个满足 就出来一条不为空的记录
()里边不用外联结 表示 t3只要有一个不满足 就出来一条空记录

from t1 left join t2 on t1.id=t2.id
left join t3 on 连接条件
left join t4 on 连接条件
.....

select * from t4 M,
(select * from t1 left join t2 on t1.id=t2.id left join t3 on t2.id=t3.id ) N
where M.a=N.a and M.b=N.b and M.c=N.c

用case When ** Then ** Else NULL ...