Обединяване на заявки в 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