我正在使用 codeigniter 和教义构建一个聊天应用程序。
表:
- 用户
- User_roles
- User_available
关系:
一个用户有很多角色。一个 user_available 有一个用户。
可供聊天的用户将在 user_available 表中。
问题:
我需要让 user_available 中没有 role_id 7 的所有用户。
所以我需要在 DQL 中表达类似的东西(这甚至不是 SQL,只是用文字):
SELECT * from 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();