Doctrine2 - 加入不相关的 table
Doctrine2 - join on non related table
我有一些不相关的表,我尝试在查询中连接表:
$builder = $this->em()->createQueryBuilder();
$builder->select('main')
->from($this->getEntityName(), 'main')
->leftJoin('\Bundle\Path\To\Article', 'a', 'WITH', 'a.id = main.articleID');
$query = $builder->getQuery();
$query->setHydrationMode(\Doctrine\ORM\AbstractQuery::HYDRATE_ARRAY);
$paginator = new \Doctrine\ORM\Tools\Pagination\Paginator($query);
return [
'success' => true,
'total' => $paginator->count(),
'data' => $paginator->getIterator()->getArrayCopy()
];
我收到这条消息:
Cannot count query which selects two FROM components, cannot make distinction
有人可以帮我解决这个问题吗?
有两个选项。
选项 1
SELECT t1.name, t2.date FROM table1 t1, table2 t2;
显然这需要修改以满足您的 SQL statement/code 结构,但我希望您能明白这一点。
选项 2
SELECT t1.name, t2.date FROM table1 t1 CROSS JOIN table2 t2;
希望这对您有所帮助 :)。但是,以后我可以建议先用谷歌搜索,因为这是一个热门问题。
我有一些不相关的表,我尝试在查询中连接表:
$builder = $this->em()->createQueryBuilder();
$builder->select('main')
->from($this->getEntityName(), 'main')
->leftJoin('\Bundle\Path\To\Article', 'a', 'WITH', 'a.id = main.articleID');
$query = $builder->getQuery();
$query->setHydrationMode(\Doctrine\ORM\AbstractQuery::HYDRATE_ARRAY);
$paginator = new \Doctrine\ORM\Tools\Pagination\Paginator($query);
return [
'success' => true,
'total' => $paginator->count(),
'data' => $paginator->getIterator()->getArrayCopy()
];
我收到这条消息:
Cannot count query which selects two FROM components, cannot make distinction
有人可以帮我解决这个问题吗?
有两个选项。
选项 1
SELECT t1.name, t2.date FROM table1 t1, table2 t2;
显然这需要修改以满足您的 SQL statement/code 结构,但我希望您能明白这一点。
选项 2
SELECT t1.name, t2.date FROM table1 t1 CROSS JOIN table2 t2;
希望这对您有所帮助 :)。但是,以后我可以建议先用谷歌搜索,因为这是一个热门问题。