SQL数据库有两个表:
表1:RYBH XM
1 张三
2 李四
3 王五
4 陈六
表2:RYBH DQZT SJ
1 睡觉 2017-01-01 05:00:00
2 吃饭 2017-01-02 05:00:00
3 打豆豆 2017-01-03 05:00:00
4 打豆豆 2017-01-04 05:00:00
2 睡觉 2017-01-05 05:00:00
3 吃饭 2017-01-06 05:00:00
2 打豆豆 2017-01-07 05:00:00
想要的查询结果:
RYBH XM DQZT SJ
1 张三 睡觉 2017-01-01 05:00:00
2 李四 打豆豆 2017-01-07 05:00:00
3 王五 吃饭 2017-01-06 05:00:00
4 陈六 打豆豆 2017-01-04 05:00:00
需求:表1和表2连起来查询,但是要关联表2的最新的一条数据。
用左外链接连起来,根据外键关联,可动态获取表二中的数据
最好表二存一个表一的关联字段,要不然你怎么确认表二中的某一条到底和表一中那一条关联呢
SELECT t1.*,temp2.DQZT,temp2.SJ FROM 表1 AS t1 INNER JOIN (
SELECT t2.* FROM 表2 AS t2 INNER JOIN (SELECT RYBH,MAX(SJ) AS max_sj FROM 表2 GROUP BY RYBH) AS temp ON t2.RYBH=temp.RYBH AND t2.SJ=temp.max_sj
) AS temp2 ON t1.RYBY=temp2.RYBH;
一条sql略复杂,表数据量大可以用程序分开处理。
可以根据分析函数paratition by RYBH,找出最新的一条记录,然后关键查出名称就行了