sql left join 如何取右表中最后一条

现在是两张表,比如一个是宠物表 pet, 别一个是宠物寄语表 word,
select * from pet p left join word w ON w.pid=p.id 但是取出来的是主键最少的那个,我要取寄语表中 time最新的那一条,

sql

3个回答

select * from pet p right join word w ON w.pid=p.id order by w.time desc limit 1;

qq_37010429
qq_37010429 不行,他仍然取的是 右表中 id最小的那一条, 只是整条数据 按右表的时间来排序了
3 年多之前 回复

try this

 select * from pet p right join word w ON w.pid=p.id where d.time = (select max(time) from word where word.pid = p.id);

select *
from (
select *
from word w
left join pet p on w.pid=p.id
order by w.time DESC
) where rownum<=1

            -------------我的思路是先查出所有的数据并按照 word表中的time字段排序  然后再取第一条数据
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐