Mysql – таблица UPDATE SET column = SELECT COUNT (*) FROM (SELECT * FROM table2 WHERE table2.id = table.id)) Невозможно

У меня две таблицы с большим количеством строк, и мне нужно поддерживать «индексную» информацию для каждой строки в первом (table_1). Поэтому я написал запрос, чтобы не использовать напрямую COUNT () [медленный, медленный, медленный]. Поэтому я стараюсь:

 UPDATE table_1 SET table_1.column_3 = (  
     SELECT COUNT (*) FROM (
         SELECT DISTINCT column_5 FROM table_2 WHERE table_2.id_t1 = table_1.id LIMIT 300
     ) t
 ) 

Но MySQL отвечает мне, что table_1.id не знает, где clause (# 1054)

Знаете ли вы, как передавать table_1.id в предложение where? Или другим способом получить мою цель?

Спасибо за помощь мне !

проблема в том, что table_1 слишком далеко от внутреннего запроса, используйте:

UPDATE table_1 SET table_1.column_3 = (SELECT count(DISTINCT column_5) FROM table_2 WHERE table_2.id_t1 = table_1.id); 

как я вижу, вы используете LIMIT, не совсем уверены, что вам это нужно, так или иначе, вы можете подражать этому:

IF(count(distinct column_5)>300, 300, count(distinct column_5))