mysql子查询计数返回gloabl计数并忽略where
目前,“矩阵mct_版本”是一个包含73个条目的表格。当我运行这个查询时,“version\u count”总是返回73行,即完整的行数。当我自己运行子选择查询时,我会根据发送的com_ID参数获得实际计数。我看不出我在这件事上做错了什么。。有人能帮忙吗mysql子查询计数返回gloabl计数并忽略where,mysql,sql,subquery,Mysql,Sql,Subquery,目前,“矩阵mct_版本”是一个包含73个条目的表格。当我运行这个查询时,“version\u count”总是返回73行,即完整的行数。当我自己运行子选择查询时,我会根据发送的com_ID参数获得实际计数。我看不出我在这件事上做错了什么。。有人能帮忙吗 SELECT a_ID as com_ID, option_number, comment, word_count, gender, sample, ( SELECT
SELECT
a_ID as com_ID,
option_number,
comment,
word_count,
gender,
sample,
(
SELECT
count(a_ID)
FROM
matrix_mct_versions
WHERE
com_ID = com_ID
) as version_count
FROM
matrix_mct
WHERE
attribute_number = :attribute_number AND
grade_number = :grade_number AND
attribute_type = :attribute_type
ORDER BY
option_number
返回如下结果:
[0] => Array
(
[com_ID] => 678
[option_number] => 1
[comment] => TODO primary function missing for controller y
[word_count] => 7
[gender] => 2
[sample] => 0
[version_count] => 73
)
[1] => Array
(
[com_ID] => 679
[option_number] => 2
[comment] => TODO make this green
[word_count] => 4
[gender] => 2
[sample] => 0
[version_count] => 73
)
[2] => Array
(
[com_ID] => 680
[option_number] => 3
[comment] => TODO make this better
[word_count] => 4
[gender] => 2
[sample] => 0
[version_count] => 73
)
至少有一个问题是您的子查询。这是不相关的。我想你的意思是:
(SELECT count(a_ID)
FROM matrix_mct_versions
WHERE matrix_mct_versions.com_ID = matrix_mct.com_ID
) as version_count
啊。。我认为如果我声明'a_ID为com_ID',那么com_ID就像是在子查询中向下传递一个变量,以便子查询使用..@John。疯狂是有办法的。MySQL在这里()解释了它的子查询范围规则。非常感谢,非常有用!