2016-09-15 123 views
-1

分组,我不知道如果我对这个问题的标题是正确的, 但这里是我的问题PostgreSQL的 - 比较两个表的列

我有两个表(TB1和TB2)都具有相同的列,这里是结构..

TABLE_NAME | COLUMN_NAME | DATA_TYPE 

那么我想所有的值列名通过table_name的DATA_TYPE分组比较

返回表应该至少像这样(样本数据)...

TABLE_NAME | COLUMN_NAME (TB1) | COLUMN_NAME (TB2) | DATA_TYPE 
user_account |  id   |  id   | charvar 
user_account |  user_name  |  user_name  | charvar 
user_account |  date_expire |   -   | charvar  
user_account |  -   |   gender  | int 
user_account |  gender   |   -   | charvar 
employee  |  id   |  id   | charvar 
employee  |  full_name  |  full_name | charvar 

抱歉,但我还没有开始任何疑问,因为我真的不知道从哪里/开始的.. 在此先感谢所有谁将会响应:d

+0

Oracle和MySQL或PostgreSQL? – jarlh

+0

嗨,先生,这是postgresql – john1717

回答

1

我想你想full outer join

select coalesce(tb1.table_name, tb2.table_name) as table_name, 
     tb1.column_name, tb2.column_name, 
     coalesce(tb1.data_type, tb2.data_type) as data_type 
from tb1 full outer join 
    tb2 
    on tb1.table_name = tb2.table_name and 
     tb1.column_name = tb2.column_name and 
     tb1.data_type = tb2.data_type; 
+0

waaa ...这一个工作就像一个魅力XD ...谢谢先生 – john1717