我希望获取所有包含三个特定列的表名。
我需要从信息模式中获取所有表名,这些表包含
目前我正在使用类似以下查询:
如何扩展以上查询并选择包含列名columnA和columnB的表?
我看到了这个答案和其他类似的答案。他们回答了以下内容:
我试图用
我需要从信息模式中获取所有表名,这些表包含
columnA
和 columnB
和 columnC
。目前我正在使用类似以下查询:
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME='columnA'
AND TABLE_SCHEMA='mysampledatabase';
如何扩展以上查询并选择包含列名columnA和columnB的表?
我看到了这个答案和其他类似的答案。他们回答了以下内容:
然而,他们选择了任何具有这3个列中任意一个的表。我认为这是因为
SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME IN ('columnA','ColumnB') AND TABLE_SCHEMA='YourDatabase';
WHERE COLUMN_NAME IN ('columnA','ColumnB','ColumnC')
,我相信它等同于COLUMN_NAME = 'columnA' OR COLUMN_NAME = 'columnB' OR COLUMN_NAME = 'columnC'
。
我试图用
WHERE COLUMN_NAME='columnA' AND COLUMN_NAME='columnB' AND COLUMN_NAME='columnC'
替换 WHERE 子句,但显然这不会返回任何结果,因为 COLUMN_NAME
一次只能是一个值!
INFORMATION_SCHEMA.COLUMNS
表3次。如果我想比较6列怎么办?还是要给您的贡献点个赞。 - Nis