有三个表,每个表有大约60列,我必须找到它们之间的所有常用列。
有没有办法自动查找三个不同表之间的公共列?
答案 0 :(得分:1)
select distinct COLUMN_NAME, count(TABLE_NAME) as COMMON_COUNT
from information_schema.COLUMNS
where TABLE_NAME in ('table1', 'table2', 'table3') and TABLE_SCHEMA = 'dbname'
group by TABLE_SCHEMA, COLUMN_NAME
having COMMON_COUNT > 1
答案 1 :(得分:0)
我不知道你的桌子看起来如何,所以我会写下我会怎么做(P.S可以有更好的方法)
1)从第一个表中选择所有值。
2)制作两个循环,首先从第二个表中搜索,然后从第三个表中搜索。
3)计算行数。
4)如果行数大于1,则表示您有重复行。