我在获取表中的常用值时遇到问题,让我解释一下,我的表名为group_id,这里有3列groupid,userid,id,在查询中我是现在在结果中传递groupid数组我获得了我所经过的所有组中的所有用户,为此我使用以下代码:
public function enlistusers($groupid) {
$select = $this->_table->select();
$select->from(array('a' => 'groups'),array());
$select->where ('a.groupid IN (?)',$groupid);
$rows = $this->_table->fetchAll($select)->toArray();
if(empty($rows)) { return null; }
return $rows;
}
在获取所有用户之后,我想要所有组中的普通用户为我传递的groupid,是否有任何mysql语句在此查询中执行此操作只是为了使其有效? 任何suggention将不胜感激.. 谢谢。
答案 0 :(得分:0)
我不熟悉你正在使用的mysql类,但是在纯mysql查询中你想要的方法是这样的:
"SELECT *
FROM a as groups
WHERE a.groupid IN ".implode(',',$groupid)."
GROUP BY id
HAVING COUNT(DISTINCT a.groupid) = ".count($groupid);
如果您没有id列
,请将“GROUP BY id”更改为其他内容