Php 条令在1和2表深度检索和排序数据
在条令中我有3个表,为了简单起见,我将它们称为:Php 条令在1和2表深度检索和排序数据,php,zend-framework,symfony,doctrine,dql,Php,Zend Framework,Symfony,Doctrine,Dql,在条令中我有3个表,为了简单起见,我将它们称为:U,M和R U可以有M和R M可以有R R不能有任何内容 如图所示,这可能如下所示: U ---> M | | | V '----> R 我想做的是创建一个查询,通过M或直接按R中的一列排序并按R中的一列查询与U相关的所有R 在PHP中,我目前有: $qb->select('r') ->from('R','r') ->where('r.u = :uid') ->ord
U
,M
和R
U
可以有M
和R
M
可以有R
R
不能有任何内容
如图所示,这可能如下所示:
U ---> M
| |
| V
'----> R
我想做的是创建一个查询,通过M
或直接按R
中的一列排序并按R
中的一列查询与U
相关的所有R
在PHP中,我目前有:
$qb->select('r')
->from('R','r')
->where('r.u = :uid')
->orderBy('r.order','DESC')
->setParameter('uid', $U->getId())
->setFirstResult( $offset )
->setMaxResults( $limit )
->andWhere(
$qb->expr()->orX(
$qb->expr()->like('r.q1',':query'),
$qb->expr()->like('r.q2',':query')
)
)
->setParameter('query', "%" . $query . "%");
我想以某种方式加入m.r
,同时仍然能够查询它们的属性。我试过:
$qb->select('u.r, m.r')
->from('U','u')
->where('u.id = :uid')
->join('u.m','m')
->orderBy('u.r.order','DESC')
->setParameter('uid', $U->getId())
->setFirstResult( $offset )
->setMaxResults( $limit )
->andWhere(
$qb->expr()->orX(
$qb->expr()->like('u.r.q1',':query'),
$qb->expr()->like('u.r.q2',':query')
)
)
->setParameter('query', "%" . $query . "%");
以及许多其他事情,但没有用
提前谢谢 好吧,我最后做的是: 从
M
中选择所有ID,其中u.ID=:uid
然后,从R
中选择all,其中R.u=:uid或R.m IN(第一次查询的结果)
真的很简单,我不知道为什么我之前没想到