我正在寻找正确的SQL代码来连接2个表并只显示详细信息表的最后一条记录.
我有一张带2张桌子的数据库,
Deals
DealID
Dealname
DealDetails
DealComments
dcID
DealID
CommentTime
CommentPerson
Comment
Run Code Online (Sandbox Code Playgroud)
每笔交易都有多条评论,但我想创建一个显示所有交易的VIEW,并且只显示每笔交易的最后一条评论(由CommentTime确定)字段
select a.dealid
, a.dealname
, a.dealdetails
, b.dcid
, b.commenttime
, b.commentperson
, b.comment
from deals a, dealcomments b
where b.dealid = a.dealid
and b.commenttime = (select max(x.commenttime)
from dealcomments x
where x.dealid = b.dealid)
Run Code Online (Sandbox Code Playgroud)
编辑:我没有仔细阅读初始问题,并没有注意到视图中需要所有DEALS行.以下是我修改的答案:
select a.dealid
, a.dealname
, a.dealdetails
, b.dcid
, b.commenttime
, b.commentperson
, b.comment
from deals a left outer join (select x.dcid
, x.dealid
, x.commenttime
, x.commentperson
, x.comment
from dealcomments x
where x.commenttime = (select max(x1.commenttime)
from dealcomments x1
where x1.dealid = x.dealid)) b
on (a.dealid = b.dealid)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3343 次 |
| 最近记录: |