Я только что получил это для меня. Пришлось изменить функцию getSQLForSelect()
в QueryBuilder.php
.
Я открыл тикет и отправил запрос на извлечение в DBAL, но в то же время не стесняйтесь использовать мою пропатченную копию .
UPDATE:
Только что понял, что альтернативный способ решения этой проблемы - всегда использовать псевдоним таблицы FROM
в качестве первого аргумента ($fromAlias
) в любом из join()
методов.
В вашем случае вы изменили бы свой код так:
$xCodesQueryBuilder = $conn->createQueryBuilder();
$xCodesQueryBuilder->select("l.id","mdsh.xcode","mdso.xcode")
->from("location_tree","l")
->join("l","location_tree_pos","p","l.id = p.tree_id")
->rightJoin("l","hotel","h","h.location_id = l.id")
->leftJoin("l","offer_location","ol","l.id=ol.location_id")
->leftJoin("l","mds_offer","mdso","ol.offer_id = mdso.offer_id")
->leftJoin("l","mds_hotel","mdsh","h.id = mdsh.hotel_id")
->where("p.parent_id IN (:ids)")
->andWhere("(mdso.xcode IS NOT NULL OR mdsh.xcode IS NOT NULL)");
var_dump($xCodesQueryBuilder->getSQL());exit;