需要一个oracle查询连接2个表有2个条件

时间:2016-01-28 11:56:28

标签: sql oracle

我有一张主表

Select * from Table_Master
  

PKID EMPNo名称

     

1 101 aaa

     

2 102 bbb

     

3 103 ccc

Select * from table_TXN
  

TXN_PKID MASTER_FKID EMPNo REMARKS

     

1 1 101 NA

     

2 2 500其错误的进入

     

3 3 123这也是错误的进入

我需要一个可以获取记录的查询:

  

2 2 500其错误的进入

     

3 3 123这也是错误的进入

类似的东西:

select * from Table_Master a, table_TXN b where a.PKID = b.TXN_PKID BUT a.EMPNo <> b.EMPNo 

1 个答案:

答案 0 :(得分:2)

我认为你的逻辑作为一个连接正常工作:

select t.*
from table_TXN t join
     Table_Master m
     on t.txn_pkid = m.pkid and t.empno <> m.empno ;

如果您将BUT替换为AND,您的代码示例将会有效。但是,不要使用隐式连接。二十多年前,SQL中引入了显式JOIN;显式语法更清晰,更强大,并被所有数据库接受。