Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL交叉查询_Mysql_Sql - Fatal编程技术网

Mysql SQL交叉查询

Mysql SQL交叉查询,mysql,sql,Mysql,Sql,我想显示包含相关列的表。例如,有3个表(department、dept_emp和employees)。如果我只对dept\u no感兴趣,我的查询应该返回department和dept\u emp表。但是,如果我对dept_no和emp_no感兴趣,那么结果应该是dept_emp table 所以我提出了这个查询,但显然有语法错误。我可以知道还有其他的选择吗 (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAM

我想显示包含相关列的表。例如,有3个表(department、dept_emp和employees)。如果我只对dept\u no感兴趣,我的查询应该返回department和dept\u emp表。但是,如果我对dept_no和emp_no感兴趣,那么结果应该是dept_emp table

所以我提出了这个查询,但显然有语法错误。我可以知道还有其他的选择吗

(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')
尝试:


只要您使用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')

这取决于你的数据库。例如,MySql不支持INTERSECT。因此,如果您指定使用什么,它可能有助于answer@Uriil,我明白了。我不知道。是的,你是对的,我正在使用mysql。除了查询,还有其他方法可以得到相同的结果吗?Uril是对的,因为mysql不支持intersect,所以查询无法工作。
    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')