Postgresql:Select 来自两个表的唯一行
Postgresql: Select unique rows from two tables
我有这两个 table 值。我需要将所有唯一值合并为 1 table。所以结果一定是:
reffnum leftb rightb desc date
tes1 1 0 Tes 1 14/10/2016
tes 1 10 0 Tes siji 14/10/2016
tes2 0 12 Tes nomor 2 14/10/2016
tes 3 0 1002 Data baru 15/10/2016
tes1 0 11 Tes 1 baru 15/10/2016
tes1 0 123 Tes 123 15/10/2016
请帮忙,提前致谢
Table t1:
reffnum leftb rightb desc timestamp
tes1 1 0 Tes 1 2016-10-12 13:47:06.945581
tes1 1 0 Tes siji 2016-10-12 13:47:06.921685
tes 1 10 0 Tes siji 2016-10-03 14:55:32.126814
tes2 0 12 Tes nomor 2 2016-10-03 14:55:32.11081
tes 3 0 1002 Data baru 2016-10-03 14:55:32.094884
tes1 0 11 Tes 1 baru 2016-10-03 14:55:32.078833
而这个 t2:
reffnum leftb righb desc date
tes1 1 0 Tes 1 2016-10-03 14:49:15.817506
tes1 1 0 Tes siji 2016-10-03 14:33:40.285849
tes 1 10 0 Tes siji 2016-10-03 14:33:40.269887
tes2 0 12 Tes nomor 2 2016-10-03 14:30:57.376459
tes1 0 123 Tes 123 2016-10-03 14:33:40.285849
tes2 0 12 Tes no2 2016-10-03 14:33:40.269887
已编辑:
这是我能做的最接近的事情:
- 我应该在 t2 中找到不在 t1 中的唯一值:select * 来自 t2 除了 select * 来自 t1
- 然后我在编号中插入值。 1 到 t1
但是现在,问题是,查询中没有。 1 抛出错误:
[Err] ERROR: EXCEPT types smallint and timestamp without time zone cannot be matched
union
运算符删除重复项,因此您可以使用非常直接的查询:
SELECT * FROM table1
UNION
SELECT * FROM table2
我有这两个 table 值。我需要将所有唯一值合并为 1 table。所以结果一定是:
reffnum leftb rightb desc date
tes1 1 0 Tes 1 14/10/2016
tes 1 10 0 Tes siji 14/10/2016
tes2 0 12 Tes nomor 2 14/10/2016
tes 3 0 1002 Data baru 15/10/2016
tes1 0 11 Tes 1 baru 15/10/2016
tes1 0 123 Tes 123 15/10/2016
请帮忙,提前致谢
Table t1:
reffnum leftb rightb desc timestamp
tes1 1 0 Tes 1 2016-10-12 13:47:06.945581
tes1 1 0 Tes siji 2016-10-12 13:47:06.921685
tes 1 10 0 Tes siji 2016-10-03 14:55:32.126814
tes2 0 12 Tes nomor 2 2016-10-03 14:55:32.11081
tes 3 0 1002 Data baru 2016-10-03 14:55:32.094884
tes1 0 11 Tes 1 baru 2016-10-03 14:55:32.078833
而这个 t2:
reffnum leftb righb desc date
tes1 1 0 Tes 1 2016-10-03 14:49:15.817506
tes1 1 0 Tes siji 2016-10-03 14:33:40.285849
tes 1 10 0 Tes siji 2016-10-03 14:33:40.269887
tes2 0 12 Tes nomor 2 2016-10-03 14:30:57.376459
tes1 0 123 Tes 123 2016-10-03 14:33:40.285849
tes2 0 12 Tes no2 2016-10-03 14:33:40.269887
已编辑:
这是我能做的最接近的事情:
- 我应该在 t2 中找到不在 t1 中的唯一值:select * 来自 t2 除了 select * 来自 t1
- 然后我在编号中插入值。 1 到 t1
但是现在,问题是,查询中没有。 1 抛出错误:
[Err] ERROR: EXCEPT types smallint and timestamp without time zone cannot be matched
union
运算符删除重复项,因此您可以使用非常直接的查询:
SELECT * FROM table1
UNION
SELECT * FROM table2