求教两表怎么只关联附表的最新一条
求教查询方案:Message 表 : id , user ,createDate
MessageDetail 表 :msgId, salesStaff ,lastEditDate ,remark
MessageDetail 表 用msgId关联 Message 表,MessageDetail 表可能有多条,但我只要 lastEditDate 最大的
关联查询语句后面加个 ORDER BY lastEditDate DESC 然后取第一条不行么? itjc8 发表于 2020-7-26 18:09
关联查询语句后面加个 ORDER BY lastEditDate DESC 然后取第一条不行么?
现在做法是
select a.id,a.createDate,a.user,b.msgId,b.salesStaff ,b.lastEditDate ,b.remark from message a
join messageDetail b on a.id=b.msgId
and b.lastEditDate=(select max(c.lasteditdate)from messageDetail c where c.messageId=a.messageId )
where b.salesStaff='zhoujielun'
查起来贼慢...想优化一下 haoffy 发表于 2020-7-27 16:15
现在做法是
select a.id,a.createDate,a.user,b.msgId,b.salesStaff ,b.lastEditDate ,b.remark from mess ...
select a.id,a.createDate,a.user,b.msgId,b.salesStaff ,b.lastEditDate ,b.remark from message a
(left或right) join messageDetail b on a.id=b.msgId AND b.salesStaff='zhoujielun' ORDERBY b.lastEditDate DESC LIMIT 1;
这是我的大概思路 能取出的多条数据按b.lastEditDate降序排,取第一条就行了,能不用子查询最好不要用子查询. itjc8 发表于 2020-8-6 06:00
select a.id,a.createDate,a.user,b.msgId,b.salesStaff ,b.lastEditDate ,b.remark from message a
(left ...
尽量不子查询的道理我懂,但这种方法只能查一条数据喔......只查'周杰伦' 还行,,,如果要查全部'男歌星' 的 列表就不行了
页:
[1]