2

関連する列を含むテーブルを表示したい。たとえば、3 つのテーブル (department、dept_emp、および employees) があります。dept_no のみに関心がある場合、クエリは department テーブルと dept_emp テーブルを返す必要があります。ただし、dept_no と emp_no に興味がある場合、結果は dept_emp テーブルのみになるはずです。

それでこのクエリを思いついたのですが、どうやら構文エラーがあるようです。他に代替手段があるかどうかを教えてください。

(SELECT TABLE_NAME
 FROM INFORMATION_SCHEMA.COLUMNS
 WHERE COLUMN_NAME = 'dept_no')
INTERSECT
(SELECT TABLE_NAME
 FROM INFORMATION_SCHEMA.COLUMNS
 WHERE COLUMN_NAME = 'empt_no')
4

2 に答える 2

2

MySql を使用している限り、サブクエリを介して実行できます。

    SELECT DISTINCT TABLE_NAME
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME = 'dept_no' AND TABLE_NAME IN (SELECT TABLE_NAME
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME = 'empt_no')
于 2013-07-26T09:11:40.580 に答える
1

試す:

SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
 WHERE COLUMN_NAME = 'dept_no'
INTERSECT
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'empt_no'
于 2013-07-26T08:47:23.043 に答える