如何在数据库中查找具有两个列名的表

Posted

技术标签:

【中文标题】如何在数据库中查找具有两个列名的表【英文标题】:How to find tables with two column names in a database 【发布时间】:2021-12-30 14:24:28 【问题描述】:

我正在尝试在具有两个列名的数据库中查找表。如果我尝试在数据库中搜索具有一个列名的表,我可以拉回具有该列的表名列表,但是当我为 2 列执行此操作时,我什么也拉不回来。

这是我一直在使用的:

select table_name from all_tab_columns
where column_name = 'COLUMN_1' and column_name = 'COLUMN_2'

【问题讨论】:

GROUP BY 或自加入。 【参考方案1】:

使用ORIN。 然后按 table_name 分组,应该有 2 列。

MySql

SELECT table_name 
FROM information_schema.columns
WHERE column_name IN ('COLUMN_1', 'COLUMN_2') 
GROUP BY table_name
HAVING COUNT(column_name) = 2

Oracle 数据库

SELECT table_name 
FROM all_tab_columns
WHERE column_name IN ('COLUMN_1', 'COLUMN_2') 
GROUP BY table_name
HAVING COUNT(column_name) = 2

【讨论】:

【参考方案2】:

你可以使用:

select table_name
  from all_tab_columns
 where column_name = 'COLUMN_1'
   and table_name in (select table_name
                        from all_tab_columns
                       where column_name = 'COLUMN_2')

【讨论】:

以上是关于如何在数据库中查找具有两个列名的表的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MySQL 中找到所有具有特定列名的表?

SQL Server如何查找表名或列名中包含空格的表和列

如何在postgresql中查找具有特定列的表

消息:未定义的索引:获取列名时(两个具有相同列的表)Codeigniter

如何从 CodeIgniter 中具有相同列名的表中输出数据?

如何根据列名查找表名,然后访问该表