我有3个数据表 t1,t2,t3
结构都是 id, val
id 主键 val 字符串

要取得这3个表的数据并集,怎么取
要求:
1, 不能有重复的 id
2, 一条 sql 语句
3, 并且要把 val 取出来
4, 3个表中 id 相同的记录 val 不一定相同 当有重复id 时就过滤掉

比如
t1记录如下:
---------------------
1 aaa
2 bbb
3 ccc

t2 记录如下
-------------------
1 bbb
5 ddd

t3 表记录如下
----------------------------
5 ggg
6 ttt

要得到的结果为
---------------------------
1 aaa
2 bbb
3 ccc
5 ddd
6 ttt

==============================================================

SELECT
UNION
LEFT JOIN ON
WHERE
ORDER BY
剩下的自己想吧
GROUP BY id

SELECT * FROM t1 WHERE 1
union select * from t2 where 1 and id not in (select id from t1 where 1 )
union select * from t3 where 1 and (id not in (select id from t1 where 1 ) and id not in (select id from t2 where 1 ))

本机 4.1.7 测试通过。