比如有3个表A(员工信息表),B(公司信息表),C(员工业绩表)
如果表A中员工年龄age小于30岁,仅仅关联B表,否则除关联B表外,同时关联C表.
我知道UNION可以实现
select A.name,A.Address from A join B on A.ID=B.Emp_ID where A.age<30
union
select A.name,A.Address from A join B on A.ID=B.Emp_ID
join C on A.ID=C.ID
where A.age>=30
请问,如果使用Case...When这样的写法,该如何实现呢?
(即怎样根据条件决定是否关联某个表呀?)
------解决方案--------------------
select A.name,A.Address
from A
join B on A.ID=B.Emp_ID
where A.age<30 or exists
(select 1 from C where C.ID=A.ID and A.age>=30)
------解决方案--------------------
关联表只是手段,你的目的不明确啊,关联和不关联有什么区别,可以在不影响结果的情况,都关联上