我正在尝试使用查询构建器来连接两个没有关系的表。
期望的最终结果:
SELECT x, y
FROM x
JOIN y
查询构建器代码:
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->select('x');
$qb->from('Test1', 'x');
$qb->join('Test2', 'y');
$qb->orderBy('x.name', 'ASC');
生成以下DQL:
SELECT x FROM Test1 x INNER JOIN Test2 y ORDER BY x.name ASC
导致语法错误:
[Syntax Error] line 0, col 137: Error: Expected Literal, got 'BY'
实体Test1和Test2没有关系(不在代码中,也不在数据库中)。
有没有办法实现这个目标? 我想使用查询构建器,因为我有很多其他依赖于查询构建器的查询功能(用于过滤和排序等)。
我知道这可以使用纯SQL或DQL查询(不是由查询构建器生成)。
答案 0 :(得分:2)
您可以尝试以下可能性:
has_and_belongs_to_many :ar_types, :class_name => 'Ar::Type', join_table: "ar_type_organisations"
has_and_belongs_to_many :organisations, join_table: "ar_type_organisations"