#mysql #symfony1 #doctrine #dql
#mysql #symfony1 #доктрина #dql
Вопрос:
Рассмотрим этот запрос:
$query = Doctrine::getTable('sfGuardUser')
->createQuery('u')
->innerJoin('u.Groups g')
->where('u.name = 'username')
->adnWhere('g.name <> 'groupname')
Это возвращает пользователя с ‘username’ независимо от его ‘groupname’. Мне нужно возвращать пользователя только в том случае, если у него НЕТ отношения ‘groupname’.
Ответ №1:
Вы должны использовать ключевое слово WITH в вашем внутреннем соединении. Это в основном добавляет условия к неявному предложению ON внутреннего соединения.
$query = Doctrine::getTable('sfGuardUser')
->createQuery('u')
->innerJoin("u.Groups g WITH g.name <> 'groupname'")
->where('u.name = 'username')