Когда я использую mysql для выполнения подзапросов, я получаю столбец Unknown 'tv.last_time' в 'where clause', что мне делать?Я хочу использовать внешние условия для фильтрации несоответствующих записей при выполнении подзапросов
SELECT
info_topic.*, b.newMessage
FROM
info_topic
LEFT JOIN `info_topic_visit` AS tv ON tv.topic_id = info_topic.id
AND tv.user_id = 225
LEFT JOIN (
SELECT
p.topic_id,
count(*) AS newMessage
FROM
info_post p
WHERE
p.create_time > tv.last_time
GROUP BY
p.topic_id
) AS b ON b.topic_id = info_topic.id
ORDER BY b.newMessage DESC
схема базы данных:
CREATE TABLE `info_topic` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT 'topic name',
`summary` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT 'summary`',
`create_time` datetime DEFAULT NULL COMMENT '',
`sort` int(11) DEFAULT '0' COMMENT '',
PRIMARY KEY (`id`),
);
CREATE TABLE `info_topic_visit` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`topic_id` int(11) DEFAULT '0' COMMENT '',
`user_id` int(11) DEFAULT '0' COMMENT '',
`last_time` datetime DEFAULT NULL COMMENT '',
PRIMARY KEY (`id`)
);