seguente query funziona bene in MySQL 5.xMySQL LEFT JOIN subquery fallire
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
Tuttavia, quando devo correre in un DB MySQL 4.0.23 con stessa struttura di DB e dati che restituiscono solo seguente messaggio :
1064 - Si è verificato un errore nella sintassi SQL. Controllare il manuale che corrisponde alla versione del server MySQL per la sintassi diritto di utilizzare vicino a '[
select t_shop.areaID, count(areaID) AS count from t_s
Ho provato molte volte, ma ancora non è riuscito. Viene lasciato il join alla sottoquery non consentita in MySQL 4.x? Quindi questo significa che devo farlo con un tavolo temporaneo?
Grazie in anticipo!
Hai ragione posso farlo solo con la scheda temperatura DROP TABLE TEMPORARY, se esiste temp_shop; CREATE TEMPORARY TABLE temp_shop (areaID int (11), count int (11)); INSERISCI IN temp_shop selezionare t_shop.areaid, conteggio (areaid) AS conteggio \t \t \t \t da t_shop gruppo \t \t \t \t da t_shop.areaID; SELEZIONA \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 DA \t \t \t \t m_area left join temp_shop \t \t \t \t su m_area.id = temp_shop.areaID; A volte dobbiamo codificare alcune vecchie macchine, il che è molto doloroso. –