给出以下
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
答案 0 :(得分:3)
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
注意:不需要在这里做UNION ALL 正如Martin Noted一样即使不需要UNION ALL也可能更快