三重嵌套的mysql选择返回时应该没有结果

时间:2013-08-14 22:41:07

标签: 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)

工作正常并返回我需要的所有值,但我需要在新查询中使用restult

但如果我尝试使用它:

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

它什么都没有回复。 我该如何查询这个子查询?

3 个答案:

答案 0 :(得分:1)

您缺少主要联接的ON子句。

  on q.___= Operators.___

答案 1 :(得分:0)

由于您正在使用内部联接,因此确定存在行 connectors.operator=roster.operator

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

答案 2 :(得分:0)

事实证明,由于我在运营商上进行了联接,但选择了所有字段,

(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”和“roster.operator”的字段,并且由于最后一个选择cant继承了scoop,因此它会发生冲突。 没有说明为什么它没有返回错误但是我通过仅选择一个操作符字段来修复它。