日期:2014-05-17  浏览次数:20416 次

【江湖救急】怎样根据条件决定是否关联某个表呀?
比如有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)

------解决方案--------------------
关联表只是手段,你的目的不明确啊,关联和不关联有什么区别,可以在不影响结果的情况,都关联上