На данный момент «matrix_mct_versions» представляет собой таблицу с 73 элементами. Когда я запускаю этот запрос, «version_count» всегда возвращает 73, то есть полное количество строк. Когда я запускаю запрос sub select самостоятельно, я получаю реальный счет в соответствии с отправленным параметром com_ID. Я не вижу, что я делаю с этим неправильно. Может ли кто-нибудь помочь?mysql sub query count return gloabl count и игнорирование где
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
)
аааа .. я подумал, что если я объявил «a_id как com_ID,» что com_ID бы как проплывающие переменную вниз запрос для подзапрос использовать .. – John
@John. , , Существует метод безумия. MySQL объясняет свои правила для подзапросов здесь (http://dev.mysql.com/doc/refman/5.7/en/correlated-subqueries.html). –
Спасибо, очень полезно! – John