De acordo com este link , você não deve misturar as duas notações ao criar junções. A vírgula que você está usando para juntar
memebers as m, telephone as t
e as chamadas subsequentes para inner join
, estão acionando o erro de coluna desconhecido. Para lidar com isso, use
CROSS/INNER/LEFT JOIN
em vez de vírgulas.
Anteriormente, o operador de vírgula (,) e JOIN tinham a mesma precedência, então a expressão de junção t1, t2 JOIN t3 era interpretada como((t1, t2) JOIN t3). Agora JOIN tem maior precedência, então a expressão é interpretada como (t1, (t2 JOIN t3)). Essa alteração afeta as instruções que usam uma cláusula ON, pois essa cláusula pode se referir apenas a colunas nos operandos da junção, e a alteração na precedência altera a interpretação de quais são esses operandos.
Para fins pedagógicos, estou adicionando a consulta, pois acho que deveria ser:
SELECT m.*, t.*
FROM memebers as m
JOIN telephone as t
JOIN memeberFunctions as mf ON m.id = mf.memeber AND mf.function = 32
JOIN mitgliedTelephone as mt ON m.id = mt.memeber
Como você não está participando de
t
e m
, o resultado final será um produto cartesiano; você pode querer que ele seja revisto. Espero ter ajudado.