Php 无ON子句的DBAL连接原则
在纯SQL中,我会这样做Php 无ON子句的DBAL连接原则,php,mysql,symfony,doctrine-orm,doctrine,Php,Mysql,Symfony,Doctrine Orm,Doctrine,在纯SQL中,我会这样做 select t1.id, t2.id from table1 t1 join table2 t2; 您如何使用dbal querybuilder实现同样的目标 $qb = $this->_em->getConnection()->createQueryBuilder() $qb->select('t1.id, t2.id') ->from('table1','t1') ->join('t1', 'table2', '
select t1.id, t2.id from table1 t1 join table2 t2;
您如何使用dbal querybuilder实现同样的目标
$qb = $this->_em->getConnection()->createQueryBuilder()
$qb->select('t1.id, t2.id')
->from('table1','t1')
->join('t1', 'table2', 't2') //without on clause, this doesn't work
->execute()
->fetchAll();
试试这个
$qb->select('t1.id', 't2.id')
->from('table1','t1')
->join('t1', 'table2', 't2', true)
->execute()
->fetchAll();
没有“ON”表达式的连接也称为交叉连接。
根据文档,您无法使用查询生成器执行此操作
只有内、左、右
您只需要一个本机查询:
$connection = $em->getConnection();
$statement = $connection->prepare("
select t1.id, t2.id from table1 t1 join table2 t2
");
$statement->execute();
$results = $statement->fetchAll();
或者想进一步了解一下您真正想要接收的内容不起作用,它在末尾添加了on子句,没有条件导致语法错误,您已经尝试过了。您是对的,只需添加真实条件:)我已经更新了我的答案