繁体   English   中英

获取每个ID的最早日期

[英]get earliest date for each id

给定以下

table1
id,name
1,test1
2,test2
3,test3

tablePrt
id,date
1,5/1/11
1,5/3/11
3,3/1/11

tableOnl
id,date
1,5/4/11
1,5/15/11

tableSrv
id,date
1,5/13/11
1,5/1/11
2,4/1/11

有什么方法可以从所有3个表中获得每个ID的最早最早日期以及table1中ID的名称?

因此,上面的结果应如下所示:

test1, 5/1/11
test2, 4/1/11
test3, 3/1/11
SELECT t1.id, 
       MIN(tbls.DATE) 
FROM   table1 t1 
       INNER JOIN (SELECT id, 
                          DATE 
                   FROM   tableprt 
                   UNION ALL
                   SELECT id, 
                          DATE 
                   FROM   tableonl 
                   UNION ALL
                   SELECT id, 
                          DATE 
                   FROM   tablesrv) tbls 
         ON t1.id = tbls.id 
GROUP  BY t1.id 

注意:正如Martin所指出的, 这里不需要做UNION ALL, 即使不需要UNION ALL,也可能会更快

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM