私の経験から、各複合体はwhere
関数は括弧内にグループ化されています(私はDoctrine 1.2.1を使用しています)。
$q->where('name = ?', 'ABC')
->andWhere('category1 = ? OR category2 = ? OR category3 = ?', array('X', 'X', 'X'))
->andWhere('price < ?', 10)
次のSQLを生成します:
WHERE name = 'ABC'
AND (category1 = 'X' OR category2 = 'X' OR category3 = 'X')
AND price < 10