我正在與codeigniter和教條建立一個聊天應用程序。排除行與學說ORM DQL(不)IN
表:
- 用戶
- User_roles
- User_available
關係:
一個用戶擁有多個角色。 ONE user_available有一個用戶。
可用於聊天的用戶將位於user_available表中。
問題:
我需要得到所有用戶在user_available尚未得到ROLE_ID 7
所以我需要在DQL類似表達(這甚至不是SQL,只是在口頭上):
SELECT *從user_available 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();