MAX函数,查不出字段值数据,求高手指点。

bao1
ID 姓名
1 张三
2 李四
3 王五

bao2
ID 姓名 职位 日期
1 张三 经理 2017-09-01
2 张三 科长 2017-09-02
3 李四 工人 2017-09-01
4 李四 经理 2017-09-02

先找出bao2中日期最大值的数据,然后再与bao1中姓名作对比,查询结果如下:

查询结果:

姓名 职位 日期
张三 科长 2017-09-02
李四 经理 2017-09-02
王五

注:因为王五在bao2中是没有数据,所以在职位与日期中为空

我写了一条语句,只能查询出姓名,日期,但bao2中的职位找不出来,找高手指点,十分感谢。

{SELECT ID,姓名,(SELECT max(日期) FROM bao2 where bao1.姓名=bao2.姓名)as 日期 FROM bao1}

这条找不出“职位”这一字段的数据,是不是因为这条语句只是把子查询作为列,所以找不出职位这个字段的数据?

都没有返回职位的字段,怎么显示

没有查询职位怎么显示呀

select b1.name,b2.职位 from bao1 b1 left join bao2 b2 on ( b2.name in(select name from bao2 where 日期 in (select max(日期) from bao2)))
或者
select b1.name,b2.职位 from bao1 b1 left join bao2 b2 on b1.name = b2.name AND b2.时间 = (select max(时间) from bao2)

SELECT t1.*,t2.role,t2.date from biao1 as t1 LEFT JOIN biao2 as t2
on t1.name=t2.name AND t2.date=(select max(date) from biao2)
已经试过可以
1 张三 科长 2017-09-02
2 李四 经理 2017-09-02
3 王五