0

此 SQL 查询

(SELECT * FROM OperatorRoster as roster 
    INNER JOIN ( SELECT *, count(*) as activeSlots FROM Connectors
    group by (operator)) as connectors
ON connectors.operator = roster.operator)

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

但如果我尝试使用它:

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

它什么也不返回。我如何查询这个子查询?

4

3 回答 3

1

您缺少主连接的 ON 子句。

  on q.___= Operators.___
于 2013-08-14T22:59:04.237 回答
0

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

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

于 2013-08-14T22:57:12.747 回答
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”,由于最后一个select不能继承scoop,所以冲突。不知道为什么它没有返回错误,但我只选择了一个运算符字段来修复它。

于 2013-08-15T22:15:21.107 回答