Это не работает, потому что «внешний» запрос не знает, что такое B.
select *
from A
left join (B inner join C on B.fkC = C.pk) B on A.optionalfkB = B.pk
(B inner join C on B.fkC = C.pk)
странно без select
, но в спецификации сказано, что оно действительно.