1

MySQL 5.6 サーバーに対して SQL クエリを実行して、少なくとも次の列名を含むすべてのテーブルを返したいと考えています。

field1 
field2

ここで例を見てきましたが、列名が1つだけ、または多くの可能な列名のうちの1つしかカバーしていません。

たとえば、次の 4 つのテーブルがあるとします。

TABLE1
field1 field2 field3

TABLE2
field2 field4

TABLE3
field1 field3

TABLE4
field1 field2

少なくとも「field1」と「field2 」を含むテーブルをクエリしているため、結果は次のようになります。

TABLE1
TABLE4

INFORMATION_SCHEMA.COLUMNS テーブルで自己結合を試みましたが、うまくいきません...

ご協力いただきありがとうございます

4

2 に答える 2

1

これを試して:

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'

: コードはここに直接記述されており、テストされていません。

于 2015-04-30T14:49:29.513 に答える
0

これを使って:

SELECT DISTINCT TABLE_NAME
FROM information_schema.COLUMNS 
WHERE COLUMN_NAME = 'field1' OR COLUMN_NAME = 'field2'

これは、「field1」または「field2」という名前の列を持つすべてのテーブル名を返す必要があります。

于 2015-04-30T14:54:41.723 に答える