나는 codeigniter와 doctrine을 사용하여 채팅 응용 프로그램을 구축 중입니다.Doctrine ORM으로 행 제외하기 DQL (NOT IN)
테이블 :
- 사용자
- User_roles
- User_available
관계 :
ONE 사용자가 많은 역할을해야합니다. 하나의 user_available 사용자가 1 명 있습니다.
채팅 할 수있는 사용자는 user_available 테이블에 있습니다.
문제 : 7
그래서 내가 좋아하는 DQL 무언가 표현 할 필요가 ROLE_ID 도착하지 않은 모든 사용자에 user_available에서 (이 그냥 즉, 심지어 SQL 아니다 얻을 필요가
) : user_available에서
SELECT * WHERE NOT user_available.User.Role.role_id = 7 정말이 하나
편집에 붙어
: 내가 잘 모르겠다. 테이블은 이미 매핑되어 있고 Doctrine은 INNER JOIN 작업을 수행합니다. 나는 긴 기다렸다 관리자를 얻기 위해이 코드를 사용하고 있지만, 지금은 사용자가 필요합니다
$admin = Doctrine_Query::create()
->select('c.id')
->from('Chat_available c')
->where('c.User.Roles.role_id = ?', 7)
->groupBy('c.id')
->orderBy('c.created_at ASC')
->fetchOne();
지금 내가 가장 긴 기다렸다 사용자를 얻을 필요가 있지만, 이것은
$admin = Doctrine_Query::create()
->select('c.id')
->from('Chat_available c')
->where('c.User.Roles.role_id != ?', 7)
->groupBy('c.id')
->orderBy('c.created_at ASC')
->fetchOne();
작동하지 않습니다