收起左侧

求教两表怎么只关联附表的最新一条

4
回复
[复制链接]
avatar
  • TA的每日心情
    qdsmile奋斗
    2024-7-8 10:02
  • 签到天数: 329 天

    [LV.8]狂热吧粉

    1

    主题

    6

    帖子

    647

    积分
    发表于 2020-7-24 14:47:49 | 显示全部楼层 |阅读模式
    求教查询方案:

    Message 表 : id , user ,createDate

    MessageDetail 表 :  msgId, salesStaff ,lastEditDate ,remark

    MessageDetail 表 用msgId关联 Message 表,MessageDetail 表可能有多条,但我只要 lastEditDate 最大的



    avatar
  • TA的每日心情
    qdsmile奋斗
    14 小时前
  • 签到天数: 2663 天

    [LV.Master]伴吧终老

    460

    主题

    1056

    帖子

    3万

    积分
    发表于 2020-7-26 18:09:20 | 显示全部楼层
    关联查询语句后面加个 ORDER BY lastEditDate DESC 然后取第一条不行么?
    学习心情好,签到少不了。
    avatar
  • TA的每日心情
    qdsmile奋斗
    2024-7-8 10:02
  • 签到天数: 329 天

    [LV.8]狂热吧粉

    1

    主题

    6

    帖子

    647

    积分
     楼主| 发表于 2020-7-27 16:15:09 | 显示全部楼层
    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'
    查起来贼慢...想优化一下
    avatar
  • TA的每日心情
    qdsmile奋斗
    14 小时前
  • 签到天数: 2663 天

    [LV.Master]伴吧终老

    460

    主题

    1056

    帖子

    3万

    积分
    发表于 2020-8-6 06:00:32 | 显示全部楼层
    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降序排,取第一条就行了,能不用子查询最好不要用子查询.
    学习心情好,签到少不了。
    avatar
  • TA的每日心情
    qdsmile奋斗
    2024-7-8 10:02
  • 签到天数: 329 天

    [LV.8]狂热吧粉

    1

    主题

    6

    帖子

    647

    积分
     楼主| 发表于 2020-8-7 15:31:05 | 显示全部楼层
    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 ...

    尽量不子查询的道理我懂,但这种方法只能查一条数据喔......只查'周杰伦' 还行,,,如果要查全部'男歌星' 的 列表就不行了
    您需要登录后才可以回帖 登录 | 立即注册 QQ登录

    本版积分规则