这正是我想要的返回,除了需要删除一些行,因为当我只希望它匹配第一个匹配时,内连接匹配多行。
select table1.IDa, table1.IDb, table1.name,
table1b.IDa, table1b.IDb, table1b.name
from
(select IDa,IDb,name from mytable) table1
inner join
(select IDa,IDb,name from mytable) table1b
ON
table1.IDa = table1b.IDa
and table1.IDb = table1b.IDb
order By table1.IDa
所以我得到了这个:
IDa IDb name IDa IDb name
1 1 bob 1 1 public
1 1 bob 1 1 smith
1 2 sally 1 2 jones
2 1 nancy 2 1 dole
但我希望收到这个:
IDa IDb name IDa IDb name
1 1 bob 1 1 public
1 2 sally 1 2 jones
2 1 nancy 2 1 dole
我只想要返回IDa + IDb组合的第一个匹配。
答案 0 :(得分:0)
基于提问者的评论
这将是最早进入数据库的入口,它也将是 与IDa,IDb的订单相同。这也是第一场比赛 返回结果
尝试此查询:
select table1.IDa, table1.IDb, table1.name,
table1b.IDa, table1b.IDb, table1b.name
from
(select IDa,IDb,name from mytable) table1
inner join
(select IDa,IDb,name, ROW_NUMBER() OVER( ORDER BY Ida,IDb) as r from mytable ) table1b
ON
table1.IDa = table1b.IDa
and table1.IDb = table1b.IDb
and table1b.r=1
order By table1.IDa
答案 1 :(得分:0)
根据您的意见,这应该有效,但<h:form id="inputForm">
...
</h:form>
和Smith
具有相同的Public
和IDa
值,希望它是数据问题。
IDb