U教義には 3 つのテーブルがあります。簡単にするために、それらを ,Mと呼びます。R
UMとを使用できRます
Mを持つことができRます
R何も持てない
ダイアグラムとして、これは次のようになります。
U ---> M
| |
| V
'----> R
私がやりたいことは、 の列を介して、または の列によって直接並べ替えられ、 の列によって照会されるすべてRの関連を取得する 1 つのクエリを作成することです。UMRR
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 . "%");
他の多くのものと同様に、しかし役に立たない...
前もって感謝します!