结构都是 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 测试通过。