Присоединяйте запросы в Doctrine к таблицам без указанных отношений

У меня есть две таблицы, которые не имеют отношения друг к другу в schema.yml. Однако таблица 1 имеет ссылку внешнего ключа на первичный ключ таблицы 2. Ясно, что я допустил ошибку, плохо спроектировав базу данных, но теперь пришло время смягчить последствия.

Я должен выполнить левое соединение между двумя таблицами в сочетании с предложением where, которое будет извлекать выбранные строки, которые я хочу. И для этого я делаю:

 Doctrine_Query::create()->select('t.*, l.lid')->from('Taxonomy t')->leftJoin('t.Cid c')      ->leftJoin('c.Lesson l')->where('t.section = ?','Critical reading');

Обычно это должно делать это, но это не так, потому что он возвращает все строки из таблицы таксономии независимо от условия where. Я думаю, это из-за того, что отношение не указано в столбце? Это было бы нелепо, потому что запрос работает, только в контексте доктрины это не так.

Спасибо


person user1020069    schedule 27.07.2012    source источник


Ответы (1)


В доктрине вы можете присоединиться только с использованием отношений, которые вы определили в своей схеме, это известное ограничение. В качестве временного решения вы можете использовать функцию Native SQL. .

person Maerlyn    schedule 27.07.2012