gpt4 book ai didi

mysql - Yii2、ActiveQuery、subQuery 没有带 ID 的条目

转载 作者:行者123 更新时间:2023-11-29 11:17:25 24 4
gpt4 key购买 nike

我找不到解决方案...我们有 mysql 表

`users`
id | username
1 Mike
2 John
3 Jane

`roles`
userID | roleID
1 2
1 3
3 1

所以问题是 - 我需要在一个查询中选择所有没有特定 roleID 的用户。此外,用户在角色中可以没有任何关系(例如 John 没有任何 roleID,因此应在所有查询中选择他)。

简单的查询是当用户拥有某个角色 ID 时(我们可以使用 ->joinWith() 检查它) - 但我需要反转此查询,选择具有除一个角色 ID 之外的任何其他角色的所有用户。

问题是我们有 oneToMany (用户->角色)关系,而 Yii2 ->joinWith() 没有以正确的方式工作(正如我所想,我希望我是错的)。

有人可以帮忙解决吗?

最佳答案

如果用户模型具有“角色”关系,并且 $excludedRoleId 是排除的 roleId,则返回没有角色的用户或角色不是 $excludedRoleId 的用户

User::find()
->joinWith(['roles'])
->where('roles.userID IS NULL OR roles.userID NOT IN ( SELECT userID FROM roles WHERE roleID = :roleId)', [':roleId' => $excludedRoleId])
->all();

关于mysql - Yii2、ActiveQuery、subQuery 没有带 ID 的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39500823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com