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 回答