mysql запрос для поиска условия выполнения идентификатора в нескольких строках - PullRequest
0 голосов
/ 20 января 2020

У меня есть таблица mysql со следующими столбцами:

id_entry    
id_player   
id_achievement
claimed

, и мне нужно найти всех игроков, которые указали конкретные c id_achievement (в моем примере 46, 53 и 63) и заявили об этом ( заявили = 1).

Я пробовал несколько вещей, самая близкая из которых:

$this->db->select('id_player');
$this->db->from('user_achievements'); 
$this->db->where_in('id_achievement', ['53','46','63']);
$this->db->where('claimed', 1);

Но это будет вернуть id_player , если любое из трех достижений завершено (мне нужны все). Каков был бы лучший способ сделать это? (Я использую активную запись Codeigniter)

1 Ответ

1 голос
/ 20 января 2020

похоже, что вы выполняете несколько команд независимо. попробуйте что-то вроде этого:

select id_player, count(*) from
(select id_player, id_achievement
from user_achievements
where id_achievement in (53, 46, 63)
and claimed = 1
group by id_player, id_achievement) sbqry
group by id_player
having count(*) = 3;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...