我有一个包含以下列的 mysql 表:
id_entry
id_player
id_achievement
claimed
并且需要找到所有已声明特定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的活动记录(
看起来您正在独立运行多个命令。 尝试这样的事情:
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;