query MySQL in esecuzione bene su v4.1.22 ma non funziona su v5.x
-
20-09-2019 - |
Domanda
Ho un'applicazione che esegue la seguente query MySQL:
SELECT 402 AS user_id,
p.id AS perm_id,
p.name AS perm_name,
lc.business_division_id,
bd.name AS bd_name,
bd.current_cycle, bd.current_moon,
lc.name AS cycle_name,
lc.milestone_date,
lc.scorecard_date,
bdm.name AS meta_name,
bdm.value AS meta_value
FROM lc_vc_cg_353.business_division bd,
lc_vc_cg_353.business_division_meta bdm,
lc_vc_cg_353.lunar_cycle lc
LEFT OUTER JOIN lc_vc_cg_353.permissions ps
ON ps.user_id = 402 AND ps.business_division_id = bd.id inner
join lc_vc_central.permission p
ON ((ps.privilege_id IS NOT null AND p.id = ps.privilege_id)
OR
(ps.privilege_id IS NULL AND p.id = 1024))
WHERE
bd.active = 1
AND
bdm.business_division_id = bd.id
AND
lc.business_division_id = bd.id
AND
lc.id = bd.current_cycle
ORDER by bd.name asc;
Il server di produzione funziona bene ed è in esecuzione MySQL v4.1.22 (Redhat), tuttavia quando eseguo la stessa query su una macchina Windows che esegue MySQL v5.1.43-comunità si tratta con il seguente errore:
ERRORE 1054 (42S22): Unknown column 'bd.id' in 'sulla clausola di'
Tutte le idee su ciò che il problema potrebbe essere? Potrebbe essere che la sintassi particolare è stato deprecato in versioni più recenti di MySQL?
Qualsiasi aiuto sarebbe molto apprezzato.
Soluzione 2
Ho fissato questo con l'installazione di MySQL v4.1.22 sulla macchina Windows.
Altri suggerimenti
Si dovrebbe verificare che gli schemi partita così.
La business_division ha una colonna id sul sistema Windows?
presumo i nomi dei database (ad esempio lc_vc_cg_353) corrispondono anche.
Non riesco a vedere nulla evidente nella sintassi.