系统有A,B,C,D 四张表,有一个字段都叫 RowGuid.和Name
现在只知道RowGuid=ef3198ad-b026-4678-8721-aa7f4cda5eb3 不知道这个RowGuid 是哪一张表的。请问这样的查询怎么查询到Name的值。
页面展示的是 Rowguid 和name 从这四张表联合的结果。
目前的思路是,在查询的时候多加个字段来确定这条数据来自哪里
比如 select rowguid,name,'a' from A
union
select rowguid,name,'b' from B
现在想问有没有好的其他方法////
里面的‘a’ 就是一个表的标识
目前这种方法可以解决现在的问题
我觉得这样还不如写成
select *,'a' from a where rowguid=''
union all
...
这样感觉效率上要好点(不确定,你可以看下两种的执行计划)
你不知道数据在哪张表里,那肯定要全查,你就根据RowGuid去表里查,查到了-return,查不到-select下一张表。
使用if else 吧,这样,每次将查询限制在一个表中,从概率上来说,将提高50%的查询效率