Задать вопрос
Ответы пользователя по тегу SQL
  • Возможна ли в Doctrine 2 связь нескольких таблиц с одной через промежуточную таблицу?

    @boodda Автор вопроса
    Ну я так понимаю, чтобы воспользоваться DQL , связь таблиц должна быть определена в аннотациях.
    Если использовать в DQL join между Product и I18nString через I18nEntity, которая замаплена на таблицу i18n_entity, то как прописать связь на первичного ключа i18n_entity.id хотя бы в одну сторону на поле i18n_string.entity_id, а если не использовать i18nEntity, то каким образом можно сделать с одного поля i18n_string.entity_id два или более внешних ключа на разные таблицы, так не базе не сделаешь, да и в принципе это как то не верно ?

    то есть правильно должно быть так
    SELECT p.*, i18s.text
    FROM product as p
    INNER JOIN i18n_entity AS i18e ON i18e.id = p.i18n_entity_id
    INNER JOIN i18n_String AS i18s ON i18s.i18n_entity_id = i18e.id AND i18s.language_id = :language_id
    WHERE i18s.text = :name

    В DQL это будет что то типа
    select p, i18s
    FROM \Application\Entity\Product p
    JOIN p.i18nEntity i18n
    JOIN i18n.id i18s
    JOIN i18s.language l
    WHERE l.id = :language AND i18s.text = :name

    но тогда у меня отсутствует связь JOIN i18n.id i18s
    Ответ написан
    Комментировать