我不是 mysql 的高级用户,所以您必须多多包涵。
我试图在其中一个子查询中使用 cref
变量,但我收到一个错误,指出 cref
列不存在。如果我取出子查询,它将显示该列,因此该列肯定存在。
如果还有其他错误,请多多指教:)
SELECT DISTINCT
(contractorsRef) AS cref,
RIDGROUP AS ridg,
(
SELECT count(*) FROM (
SELECT DISTINCT subcontractorRef
FROM request
INNER JOIN request_config
ON request_config.RIDGROUP = request.RIDGROUP
WHERE request_config.contractorsRef = cref --### ERROR HERE
AND currenttaxyear =2011
AND weekno =31
) AS xx
) as xxx
FROM request_config
WHERE currenttaxyear =2011
AND weekno =32
AND contractorsRef <>132
最佳答案
试试这个(请注意,我在外部选择中将 request_config
标记为 outer_config
并且我在内部选择中使用标签限定了引用
SELECT DISTINCT (contractorsRef) AS cref, RIDGROUP AS ridg,
(select count(DISTINCT subcontractorRef)
FROM request
INNER JOIN request_config ON request_config.RIDGROUP = request.RIDGROUP
WHERE request_config.contractorsRef = outer_config.contractorsRef
AND currenttaxyear =2011
AND weekno =31) AS xxx
FROM request_config outer_config
WHERE currenttaxyear =2011
AND weekno =32
AND contractorsRef <>132
编辑 请再试一次,我从子选择中删除了 1 个不必要的层
关于mysql - 在子查询中使用主查询中的列时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8097288/