У меня щеколда время переводил следующий необработанный MySQL запрос, который был проверен и работает очень хорошо, в доктрине 1.2:перевести сырец MySQL в Доктрине 1,2
SELECT
r.name AS regionname,
s.name AS statename
FROM
job j
LEFT JOIN
community c ON c.id = j.community_id
LEFT JOIN
state s ON s.id = c.state_id
LEFT JOIN
region r ON r.id = s.region_id
WHERE
r.id = 1
Это не работает:
$q = Doctrine_Query::create()
->select('r.name AS regionname', 's.name AS statename')
->from('job j')
->leftJoin('community c ON c.id = j.community_id')
->leftJoin('state s ON s.id = c.state_id')
->leftJoin('region r ON r.id = s.region_id')
->where('r.id = 1')
->execute();
Вот моя дб структура, если она полезна:
job:
columns:
id
community_id
relations:
community: local_key: community_id, foreign_key: id, foreignAlias: Communitys
community:
columns:
id
state_id
relations:
state: local_key: state_id, foreign_key: id, foreignAlias: States
state:
columns:
id
name
region_id
relations:
region: local_key: region_id, foreign_key: id, foreignAlias: Regions
region:
columns:
id
name
Спасибо за подробный ответ. К сожалению, он не работает. Я тоже пытался отключить иностранный псевдоним, но он зацикливается на них. Это ошибка, которую я получаю, когда пытаюсь их использовать: «Неизвестное отношение alias Community» И я получаю эти ошибки всякий раз, когда я пытаюсь их использовать. Я проверю, что они находятся в методе настройки и repost. Еще раз спасибо. – Patrick
... и это действительно проблема. Нет утверждения «community as Communitys», просто «Community, array ('.Который меня немного озадачивает, потому что моя схема утверждает это как иностранный псевдоним. Но моя схема не идентифицирует ее как отношения «один-к-одному». Это проблема? Обновление – Patrick
: я изменил базовый класс на включение предложения «как» (я знаю, что это плохая форма, и я изменю его в схеме, если он в конечном итоге исправит проблему), и это устранило проблему для отношения «Сообщество» , однако теперь он зацикливается на предложении «Штаты», давая мне ошибку, говоря, что работа должна относиться к государству ... которое оно не в моей схеме ... сообщество относится к государству. Любая идея для решения? – Patrick