После запроса хорошо работает в MySQL 5.xMySQL покинул присоединиться к подзапрос неудачу
SELECT
m_area.id, m_area.cn_areaName, m_area.de_areaName,
m_area.en_areaName,m_area.jp_areaName,t_shop.count
FROM
m_area left join
(
select t_shop.areaID, count(areaID) AS count
from t_shop
group by t_shop.areaID
) t_shop
on m_area.id = t_shop.areaID
Однако, когда я должен запустить его в 4.0.23 БД MySQL с такой же структурой БД и данных, которые он просто возвращают следующее сообщение :
1064 - У вас есть ошибка в синтаксисе SQL. Проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать вблизи «[
select t_shop.areaID, count(areaID) AS count from t_s
Я пробовал много раз, но до сих пор не удалось. Осталось ли присоединение к подзапросу, не разрешенному в MySQL 4.x? Тогда это означает, что я должен сделать это с помощью временной таблицы?
Заранее спасибо!
Вы правы, я могу сделать это только с вкладкой temp ВРЕМЕННЫЙ ТАБЛИЦУ DROP IF EXESTS temp_shop; CREATE TEMPORARY TABLE temp_shop (areaID int (11), count int (11)); INSERT INTO temp_shop выберите t_shop.Areaid, граф (Areaid) как граф \t \t \t \t от t_shop \t \t \t \t группы по t_shop.areaID; ВЫБРАТЬ \t \t \t \t m_area.id, m_area.cn_areaName, m_area.de_areaName, \t \t \t \t m_area.en_areaName, m_area.jp_areaName, temp_shop.count \t \t \t \t ИЗ \t \t \t \t m_area покинул присоединиться temp_shop \t \t \t \t о m_area.id = temp_shop.areaID; Иногда нам приходится указывать некоторые старые машины, что так больно. –