SQL 列出具有特定列名的所有表
SQL list all tables with certain column names
我想对 MySQL 5.6 服务器进行 SQL 查询,以便 return 我所有 table 至少包含以下列名称:
field1
field2
我在这里看到了示例,但它们只涵盖了只有一个列名或许多可能的列名之一。
例如,如果我有这 4 个 table:
TABLE1
field1 field2 field3
TABLE2
field2 field4
TABLE3
field1 field3
TABLE4
field1 field2
因为我查询的 table 至少有 "field1" AND "field2",结果应该是:
TABLE1
TABLE4
我尝试使用 INFORMATION_SCHEMA.COLUMNS table 进行自我连接,但我做不对...
感谢您的帮助
试试这个:
SELECT DISTINCT T1.TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS T1
INNER JOIN INFORMATION_SCHEMA.COLUMNS T2 ON(T1.TABLE_NAME = T2.TABLE_NAME)
WHERE T1.COLUMN_NAME = 'field1'
AND T2.COLUMN_NAME = 'field2'
注意:这里直接写代码,没有测试
使用这个:
SELECT DISTINCT TABLE_NAME
FROM information_schema.COLUMNS
WHERE COLUMN_NAME = 'field1' OR COLUMN_NAME = 'field2'
这应该 return EVERY table name 其中有一列名为 'field1' 或 'field2'.
我想对 MySQL 5.6 服务器进行 SQL 查询,以便 return 我所有 table 至少包含以下列名称:
field1
field2
我在这里看到了示例,但它们只涵盖了只有一个列名或许多可能的列名之一。
例如,如果我有这 4 个 table:
TABLE1
field1 field2 field3
TABLE2
field2 field4
TABLE3
field1 field3
TABLE4
field1 field2
因为我查询的 table 至少有 "field1" AND "field2",结果应该是:
TABLE1
TABLE4
我尝试使用 INFORMATION_SCHEMA.COLUMNS table 进行自我连接,但我做不对...
感谢您的帮助
试试这个:
SELECT DISTINCT T1.TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS T1
INNER JOIN INFORMATION_SCHEMA.COLUMNS T2 ON(T1.TABLE_NAME = T2.TABLE_NAME)
WHERE T1.COLUMN_NAME = 'field1'
AND T2.COLUMN_NAME = 'field2'
注意:这里直接写代码,没有测试
使用这个:
SELECT DISTINCT TABLE_NAME
FROM information_schema.COLUMNS
WHERE COLUMN_NAME = 'field1' OR COLUMN_NAME = 'field2'
这应该 return EVERY table name 其中有一列名为 'field1' 或 'field2'.