Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql子查询计数返回gloabl计数并忽略where_Mysql_Sql_Subquery - Fatal编程技术网

mysql子查询计数返回gloabl计数并忽略where

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

目前,“矩阵mct_版本”是一个包含73个条目的表格。当我运行这个查询时,“version\u count”总是返回73行,即完整的行数。当我自己运行子选择查询时,我会根据发送的com_ID参数获得实际计数。我看不出我在这件事上做错了什么。。有人能帮忙吗

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在这里()解释了它的子查询范围规则。非常感谢,非常有用!