有三个表,每个表大约有 60 列,我必须找到它们之间的所有公共列。
有没有办法自动找到三个不同表之间的公共列?
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
我不知道你的桌子看起来如何,所以我就写一下我会怎么做(PS 可以有更好的方法)
1)从第一个表中选择所有值。
2)做两个循环,第一个从第二个表中搜索,第二个从第三个表中搜索。
3)计算行数。
4)如果行数超过一,你知道你有重复。