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

时间:2015-02-27 11:22:34

标签: mysql delegates nested subquery alias

如何将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

2 个答案:

答案 0 :(得分:1)

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

在你的例子中:

SELECT DV.ID DV_ID

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

SELECT DV.ID "Hi my dear"

但是不正确读取查询其他部分内的信息

答案 1 :(得分:1)

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

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)