SQL在不同的表中查找相同的列

zma*_*ter 1 sql union compare join

我有2张非常大的桌子.我试着找出他们的共同点.

它们没有相同数量的列.我可以只是查看每个表中的每个列名并进行比较 - 但它们都有数百列(我必须为许多这样的表执行此操作).

我使用的是MS Sql server.

任何一个都没有约束,也没有外键.

我该怎么做呢?

像这样的东西:

select * AS "RES" from Table1 where RES IN (select * column from Table2)
Run Code Online (Sandbox Code Playgroud)

提前致谢.

小智 9

如果您要查找两个表之间相同的列名,则应该可以:

select name from syscolumns sc1 where id = object_id('table1') and exists(select 1 from syscolumns sc2 where sc2.name = sc1.name and sc2.id = object_id('table2'))
Run Code Online (Sandbox Code Playgroud)

您还可以通过在子查询中抛出sc1.xtype = sc2.xtype来确保它们是相同的类型.