MySQL 查询以查找多行上的 ID 满足条件



我有一个包含以下列的 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;

相关内容

  • 没有找到相关文章

最新更新