Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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选择在应该返回结果时不返回任何结果_Mysql_Sql - Fatal编程技术网

三重嵌套mysql选择在应该返回结果时不返回任何结果

三重嵌套mysql选择在应该返回结果时不返回任何结果,mysql,sql,Mysql,Sql,此SQL查询 (SELECT * FROM OperatorRoster as roster INNER JOIN ( SELECT *, count(*) as activeSlots FROM Connectors group by (operator)) as connectors ON connectors.operator = roster.operator) 工作正常并返回我需要的所有值,但我需要在新查询中使用result 但如果我尝试使用它: SELECT *

此SQL查询

(SELECT * FROM OperatorRoster as roster 
    INNER JOIN ( SELECT *, count(*) as activeSlots FROM Connectors
    group by (operator)) as connectors
ON connectors.operator = roster.operator)
工作正常并返回我需要的所有值,但我需要在新查询中使用result

但如果我尝试使用它:

SELECT * FROM (SELECT * FROM OperatorRoster as roster 
    INNER JOIN ( SELECT *, count(*) as activeSlots FROM Connectors
    group by (operator)) as connectors
ON connectors.operator = roster.operator) as q
它什么也不说。
如何查询此子查询?

由于您使用的是内部联接,是否确实存在其中的行
connectors.operator=花名册.operator


如果没有符合该要求的行,则查询不应返回任何行

您缺少主联接的ON子句

  on q.___= Operators.___

结果表明,由于我对运算符进行了联接,但选择了所有字段

(SELECT * FROM OperatorRoster as roster 
    INNER JOIN ( SELECT *, count(*) as activeSlots FROM Connectors
    group by operator) as connectors
ON connectors.operator = roster.operator)
它返回两个名称相同的字段“connectors.operator”和“floster.operator”,由于最后一次选择无法继承独家新闻,因此会发生冲突。
不知道为什么它没有返回错误,但我只选择了一个操作符字段来修复它

“每个派生表都必须有自己的别名。”是的,但它仍然不起作用。为了可读性,我只是去掉最后一个别名,它不会返回错误。如果没有错误(顺便说一句,如何检查?),那么如果查询的结果是零行,因此没有数据。您缺少主联接的ON子句关于q.--=运算符。---`@Scotch我想这看起来很奇怪,因为您已经习惯了Oracle(唯一一个在对表进行别名时不喜欢
AS
的DBMS),它是可选的,但却是标准的,并且用于所有其他DBMS(SQL Server、MySQL、Postgres、DB2等)在列别名时也是可选的。是的,但这没有区别,选择仍然有效?