"Fred" <frederic.fleche@xxxxxxxxx> writes: > I have a syntax problem but I don't find the clue. > Actually I adapt an mySQL query to a postgreSQL but I got a message > error that I can't interpret. > SELECT g.id, t1.name, substring(g.path, 1, (6*(-1+l.id)) + 5) as > subpath,l.id-1 as level > FROM graph_path g > INNER JOIN term AS t1 > INNER JOIN term AS t2 ON (t2.id = g.term2_id) > INNER JOIN levels l ON (substring(path, 1+(6*(-1+l.id)), 5) = t1.id > AND g.distance+1 >= l.id) > WHERE t2.name = 'blood_coagulation' and g.term1_id=1 > ORDER BY g.id, subpath; You're short an ON condition: there has to be an ON for every JOIN. Or turn the first INNER JOIN into a CROSS JOIN, so it doesn't need an ON. Does MySQL really accept that as-is? (Standards compliance was never their strong point :-() regards, tom lane