Après requête fonctionne bien dans MySQL 5.xMySQL gauche se joindre à l'échec
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
Cependant, quand je dois courir dans un 4.0.23 MySQL DB avec la même structure de DB et les données qu'il message suivant juste retour :
1064 - Vous avez une erreur dans votre syntaxe SQL. Consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser à proximité [
select t_shop.areaID, count(areaID) AS count from t_s
J'ai essayé plusieurs fois, mais toujours pas. Est-ce que la jointure gauche à la sous-requête n'est pas autorisée dans MySQL 4.x? Alors ça veut dire que je dois le faire avec une table temporaire?
Merci d'avance!
Vous avez raison, je ne peux le faire avec l'onglet temp DROP TEMPORARY TABLE SI EXISTS temp_shop; CREATE TABLE TEMPORAIRE temp_shop (areaID int (11), count int (11)); INSCRIRE DANS temp_shop sélectionnez t_shop.Areaid, compter (Areaid) AS comptage \t \t \t \t de t_shop \t \t \t groupe \t par t_shop.areaID; SELECT \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 DE \t \t \t \t m_area left join temp_shop \t \t \t \t sur m_area.id = temp_shop.areaID; Parfois, nous devons coder pour certaines vieilles machines, ce qui est si douloureux. –