这可能很简单,我现在还没有看到树木.在Oracle中,我从表A中选择基于表A的主键连接到表B的记录.但是,表B可以有多个与表A的主键匹配的记录.这导致我的查询从表中返回重复的行A.以下是我的查询的缩减版本:
TableA TableB
_______ _________
1, Sec1 2, 11/01/2011
2, Sec2 2
3, Sec3 5, 10/01/2011
4, Sec4 6, 10/01/2011
Select A.SecID, A.SecName, B.DateSent from tableA A
inner join tableB B on A.SecID = B.SecID
Run Code Online (Sandbox Code Playgroud)
这将为Sec2返回2条记录 - 如何让它仅返回Sec2的1条记录?我尝试过使用独特而独特但仍然得到相同的结果.
Qua*_*noi 12
SELECT secid, secname
FROM tableA
WHERE secid IN
(
SELECT secid
FROM tableb
)
Run Code Online (Sandbox Code Playgroud)
如果你还需要一个记录tableB
:
SELECT secid, secname, datesent
FROM (
SELECT a.secid, a.secname, b.datesent, ROW_NUMBER() OVER (PARTITION BY a.secid ORDER BY b.datesent DESC) AS rn
FROM tableA a
JOIN tableB b
ON b.secid = a.secid
)
WHERE rn = 1
Run Code Online (Sandbox Code Playgroud)
ORDER BY
子句控制b
您将获得多个记录中的哪一个.
归档时间: |
|
查看次数: |
20573 次 |
最近记录: |