Я пытаюсь передать столбец из внешнего запроса, как показано ниже, во внутренний запрос в предложении WHERE, а MySQL это не нравится. Я не уверен, как переписать этот запрос, чтобы он работал.
Я получаю сообщение об ошибке: Неизвестный столбец «y.DateShipped» в предложении where
То, что я пытаюсь сделать, - это присоединиться к строке во внутренней таблице с EffectiveDate, который меньше чем DateShipped, а также является максимальным EffectiveDate во внутреннем соединении (для одной группы может быть несколько строк с помощью разные EffectiveDate (s))
Я хотел бы знать, как заставить это работать или переписать это так, чтобы это работало. Я использую MySQL 5.6, поэтому у меня нет доступных оконных функций, иначе я думаю, что это может сработать.
select
x.id,
y.id,
y.DateShipped
from Shipment y inner join
(select id, SourceId, DestinationId, SourcePPFContractId, EffectiveDate
from Relationship where EffectiveDate <= y.DateShipped order by
EffectiveDate desc limit 1) x
on x.DestinationId = y.DestinationCustomerId
and x.SourceId = y.OriginCustomerId
and x.SourcePPFContractId = y.OriginContractId;