У меня есть модель базы данных, которая хранит пользователя в группах, а для каждой группы - другие права. Структура показана на изображении.Как выбрать пользователя с большим количеством условий
Я хочу сделать SELECT
запрос, возвращать пользователя (ей), которые имеют один или больше прав.
Im используя medoo
public function selUserByRight($rightID)
{
return $this->db->select(
"Users",
[
"[>]GroupRight" => ["FK_Group" => "FK_Group"],
"[>]Rights" => ["GroupRight.FK_Right" => "ID"]
],
[
"Users.ID","Users.Name","Rights.ID(RightID)","Rights.Right"
],
[
"AND" =>
[
"Rights.ID" => $rightID
]
]
);
}
Использование:
$result = $db->selUserByRight(1,2,3);
Сырье запроса:
SELECT "Users"."ID","Users"."Name","Rights"."ID"
AS "RightID","Rights"."Right"
FROM "Users"
LEFT JOIN "GroupRight" ON "Users"."FK_Group" = "GroupRight"."FK_Group"
LEFT JOIN "Right" ON "GroupRight"."FK_Right" = "Rights"."ID"
WHERE "Rights"."ID = 1
Проблема заключается в том, что запрос возвращает всех пользователей, но я хочу вернуть только user1 (потому что только у этого пользователя есть все права wanter).
Есть ли решение?
Если вы можете предоставить нам свою структуру таблицы и некоторые выборочные данные на SQL Fiddle. –
Любое повезло с этим? –