我希望实现以下目标:
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE 'columnA'
AND COLUMN_NAME LIKE 'columnB';
但是这个特定的查询将返回0个巧合。
答案 0 :(得分:4)
information_schema.columns
中的每一行代表一列 - 它不能同时为columnA
和columnB
。一种方法可能是计算表中此类列的数量,并检查返回两个结果:
SELECT table_name
FROM information_schema.columns
WHERE column_name IN ('COLUMNA', 'COLUMNB')
GROUP BY table_name
HAVING COUNT(*) = 2
答案 1 :(得分:0)
你应该使用OR而不是..
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE 'columnA'
OR COLUMN_NAME LIKE 'columnB';
不可能在同一行中一列包含' columnA' AND' columnB'
但如果你需要两个表名,你可以使用内连接
SELECT DISTINCT C1.TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS C1
INNER JOIN (
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE 'columnB'
) C2 ON C1.TABLE_NAME = C2.TABLE_NAME
WHERE C2.COLUMN_NAME LIKE 'columnA'