在整个SQL数据库中查找唯一的表/列组合-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

在整个SQL数据库中查找唯一的表/列组合

保持可爱mmm 2019-11-18 16:03:44 94

我有4个具有类似架构的数据库,并且我试图创建一个查询以仅返回表,列对,它们仅存在于数据库1中,而不存在于数据库2、3或4中。

目前,我可以通过以下查询返回数据库1和数据库2之间的对称差...

select table_name, column_name from ( select table_name, column_name from [Database1].information_schema.columns union all select table_name, column_name from [Database2].information_schema.columns) as tmp group by table_name, column_name having count(*) = 1 但是,在尝试仅隔离数据库1中的那些列并在所有4个数据库中执行相同操作时,事情变得越来越复杂。此查询最干净的解决方案是什么?

问题来源于stack overflow

SQL 数据库
分享到
取消 提交回答
全部回答(1)
  • 保持可爱mmm
    2019-11-18 16:03:54

    SELECT D1.table_name, D1.column_name FROM Database1.information_schema.columns D1 LEFT OUTER JOIN Database2.information_schema.columns D2 ON D2.table_name = D1.table_name AND D2.column_name = D1.column_name LEFT OUTER JOIN Database3.information_schema.columns D3 ON D3.table_name = D1.table_name AND D3.column_name = D1.column_name LEFT OUTER JOIN Database4.information_schema.columns D4 ON D4.table_name = D1.table_name AND D4.column_name = D1.column_name WHERE D2.table_name IS NULL AND D3.table_name IS NULL AND D4.table_name IS NULL

    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程