mysql left join 多对多获取最新编辑的一条

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangxinxinsj/article/details/89185230
SELECT
                            b.student_name,
                            b.student_id,
                            b.date,
                            b.bed,
                           d.punch_time,
                            d.punch_date
                        FROM
                           student_attendance AS b 
                        LEFT JOIN student_attendance_arrange AS c ON c.id = b.arrange_id
                        LEFT JOIN student_punch as d on d.student_id=b.student_id  WHERE
                            c.type = 4 AND b.date = 20190410 
                        AND b.organization_id = 22
                        AND b.dorm_room_id=13 GROUP BY b.student_id

这里默认获取的是 d表中的第一条,punch_time不是最新的时间

SELECT
                            b.student_name,
                            b.student_id,
                            b.date,
                            b.bed,
                            max(d.punch_time) as punch_time,
                            d.punch_date
                        FROM
                           student_attendance AS b 
                        LEFT JOIN student_attendance_arrange AS c ON c.id = b.arrange_id
                        LEFT JOIN student_punch as d on d.student_id=b.student_id  WHERE
                            c.type = 4 AND b.date = 20190410 
                        AND b.organization_id = 22
                        AND b.dorm_room_id=13 GROUP BY b.student_id

这里利用mysql 的max函数,就能获取到student_punch表里最新的一条数据了

猜你喜欢

转载自blog.csdn.net/wangxinxinsj/article/details/89185230
今日推荐