繁体   English   中英

MySQL:如何将别名委托给子查询的子查询?

[英]MySQL: how to delegate alias into subquery of subquery?

如何将DV_ID或DV.ID委托给第二个(更深的)子查询? 可能吗? (如果我只有一层嵌套,它将起作用。)

SELECT DV.ID DV_ID, (
SELECT COUNT(*) FROM (SELECT * MYTABLE VSV
WHERE VSV.ID = DV_ID //DV_ID is not seen...
GROUP BY VSV.ID) A ) B
FROM MYTABLE2 DV

在SELECT字段中使用别名时,在子查询中看不到列表。 您可以使用DV.ID(DV是表的别名)。

在您的示例中:

SELECT DV.ID DV_ID

您可以将输出别名替换为字符串,如下所示:

SELECT DV.ID "Hi my dear"

但不正确,请在查询的其他部分中读取该信息

您可以将特定查询重写为:

SELECT DV.ID as DV_ID,
       (SELECT COUNT(DISTINCT VSV.ID)
        FROM MYTABLE VSV
        WHERE VSV.ID = DV.ID //DV_ID is not seen...
       ) as B
FROM MYTABLE2 DV;

(注意:如果VSV.ID可以采用NULL值,则表达式将为SELECT COUNT(DISTINCT vsv.ID) + MAX(vsv.id is null) )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM