Inner Join com erro

Bom dia galera, estou tentando puxar dados do meu banco onde, preciso do idgrupoitemdespesa, dtlancamento e vritem porem qnd tento puxar o idgrupoitemdespesa recebo um erro que diz: invalid reference to FROM-clause entry for table “caixaitem”, quando uso o codigo sem puxar o idgrupoitem despesa ele funciona normalmente segue abaixo codigo sem o idgrupoitem despesa e com idgrupoitemdespesa:

Sem>> Select contaspagar.dtlancamento, caixaitem.vritem
From caixaitem
INNER JOIN
contaspagar ON caixaitem.idcontaspagar = contaspagar.idcontaspagar
WHERE
contaspagar.dtlancamento between ‘2017-11-01’ and ‘2017-11-30’ and idcontafinanceiro = 1 (Funcionando normalmente)

Com>> Select contaspagar.dtlancamento, caixaitem.vritem, itemdespesa.idgrupoitemdespesa
From caixaitem, itemdespesa
INNER JOIN
contaspagar ON caixaitem.idcontaspagar = contaspagar.idcontaspagar
WHERE
contaspagar.dtlancamento between ‘2017-11-01’ and ‘2017-11-30’ and idcontafinanceiro = 1 (Recebo o erro citado a cima)

Quem puder ajudar agradeço desde já, preciso muito disso

Qual é o relacionamento entre eles?

Eles tem o mesmo id de item

Mas é 1:1 1:n n:n?

Sempre que existe uma caixaitem existe um itemdespesa?

Se não existir, você tem que colocar um WHERE que faz a igualdade para que só se tenha valores que combinam entre eles.

Pela mensagem de erro acredito seja o problema da mistura de tabelas na clausula From com e sem joins explícitos.

Experimente mudar para algo como:

Select contaspagar.dtlancamento, caixaitem.vritem, itemdespesa.idgrupoitemdespesa
From caixaitem
INNER JOIN
contaspagar ON caixaitem.idcontaspagar = contaspagar.idcontaspagar
INNER JOIN itemdespesa ON caixaitem.<algum_campo> = itemdespesa.<outro_campo>
WHERE
contaspagar.dtlancamento between ‘2017-11-01’ and ‘2017-11-30’ and idcontafinanceiro = 1
1 curtida

Muito obrigado mano, funcionou direitinho