标题表述的可能不是很清晰:见表
表一: empID empname empdpt
1 张三 5
2 李四 6
3 王五 7
表二: cradID LogDateTime
1 2014-5-21 15:33:32
2 2014-5-22 15:33:32
6 2014-5-26 15:33:32
其中表一的empid和表二的cradid是关联字段,由于表二的数据写入时误将表一中的王五的Empid值写成6,导致关联字段数值不对应(表二内容第三方提供不可更改),现在想要实现这样的查询功能,不知道可能实现啊?
empid empname LogDateTime
1 张三 2014-5-21 15:33:32
2 李四 2014-5-22 15:33:32
3 王五 2014-5-26 15:33:32
或者是
empid empname LogDateTime
1 张三 2014-5-21 15:33:32
2 李四 2014-5-22 15:33:32
6 王五 2014-5-26 15:33:32
------解决方案--------------------
那只能再加一个表,列名两表的对应关系,查询的时候3表联查,但是这需要手动维护。根本办法还是要求第三方修改程序
------解决方案--------------------
select * from 表一 as a inner join 表二 as b on (a.empID=b.cradID and a.empID!=3 and b.cradID!=6) or (a.empID=3 and b.cradID=6)
虽然可以实现,但最好改一下数据,保证数据的一致性,第三方的改不了,就改自己的麻,变通一下。
------解决方案--------------------
加表,说明 表一 的 empID 字段,与表二 empid 字段的关系
这样才能够连接吧
不然你字段都不对应,也不是全部都不对应的,里面的规律能找的出来么?
建如表三:
empID empid
3 6
或者,改程序,总要统一起来才好。
------解决方案--------------------
两表之间的关联表相当重要啊。如果没有关联 即使写出来了效率也很低下的