A和B和C表的结构基本一样,同一条件,例如查询id=5的,先查A,A不存在查B,B不存在查C。
用一句sql怎么写效率高,感谢想办法的朋友,A和B和C假如存在id=5的,那最多只有一个表存在,或都不存在。
~
相对于A表是及时表,B表和C表是历史数据,只有A查不到的时候才去查B和C表
用一句sql怎么写效率高,感谢想办法的朋友,A和B和C假如存在id=5的,那最多只有一个表存在,或都不存在。
~
相对于A表是及时表,B表和C表是历史数据,只有A查不到的时候才去查B和C表
解决方案
10
这种最好用存储过程吧。
30
select * from a where id=5
union all
select * from b where id=5 and not exists (select 1 from a where id =5)
union all
select * from c where id=5 and not exists (select 1 from a where id =5)
union all
select * from b where id=5 and not exists (select 1 from a where id =5)
union all
select * from c where id=5 and not exists (select 1 from a where id =5)