![](/img/trans.png)
[英]SQL How to select columnA and columnB where columnB has a distinct value
[英]How to find all tables that contain columnA and columnB
我想實現以下目標:
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE 'columnA'
AND COLUMN_NAME LIKE 'columnB';
但是此特定查詢將返回0個巧合。
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
您應該使用OR而不是and ..
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE 'columnA'
OR COLUMN_NAME LIKE 'columnB';
同一行中的列不可能包含“ columnA”和“ 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'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.