如何将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
答案 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)
。